[PATCH] Fancy rc startup style RFC

Eric Anderson anderson at centtech.com
Tue Apr 18 20:02:44 UTC 2006


Peter Jeremy wrote:
> On Tue, 2006-Apr-18 14:02:07 -0400, Coleman Kane wrote:
> A few comments on the shellscript:
> 
>> +			rcargsize=`echo $rc_arg`
>> +			rcargsize=${#rcargsize}
> 
> Try			rcargsize=$((${#rc_arg} + 1))
> 
>> -				    return 1
>> +				    (echo_fancy "FAILED" `expr 10 + $rcargsize - 1`) && return 1
> 
> Try				    echo_fancy "FAILED" $((10 + $rcargsize - 1)) && return 1
> 
>> +echo_fancy () {
> ...
>> +	namesize=`echo -n $name`
>> +	namesize=${#namesize}
> or	namesize=${#name}
> 
>> +	padding=""
>> +	paddingsize=$(($columns - 15 - $2 - $namesize))
>> +	until [ 0 = ${paddingsize} ]; do
>> +		padding=" $padding"
>> +		paddingsize=$(($paddingsize - 1))
>> +	done
> 
> This particular block of code appears unnecessary (since $padding is unused).

I must be missing something, because I'm pretty sure it's used.. What 
did I miss?



>> +			paddingsize=$((60 - $namesize - $rc_argsize))
>> +			until [ 0 = ${paddingsize} ]; do
>> +		  		padding=" $padding"
>> +		  		paddingsize=$(($paddingsize - 1))
>> +			done
> 
> For safety, the conditions should probably be [ 0 -ge ${paddingsize} ]
> I don't see any alternative to the until loop.  If efficiency turns out
> to be a real issue then you could try doing the expansion in multiple
> goes.  Eg:
> 
> 			until [ 8 -gt ${paddingsize} ]; do
> 		  		padding="        $padding"
> 		  		paddingsize=$(($paddingsize - 8))
> 			done
> 			until [ 0 -ge ${paddingsize} ]; do
> 		  		padding=" $padding"
> 		  		paddingsize=$(($paddingsize - 1))
> 			done

Thanks for the hints.  I was testing the same changes to the 
namesize/etc as you suggested, and it does work and is more readable and 
more efficient.

I've included your suggestions and put the latest changes here:

http://www.googlebit.com/freebsd/patches/rc_fancy.patch-3


Thanks for all the feedback!  Keep it coming! :)

Eric




-- 
------------------------------------------------------------------------
Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------


More information about the freebsd-hackers mailing list