[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