Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 04 Mar 2007 14:52:49 -0800
From:      Doug Barton <dougb@FreeBSD.org>
To:        Yar Tikhiy <yar@comp.chem.msu.su>
Cc:        freebsd-rc@FreeBSD.org
Subject:   Re: cvs commit: doc/en_US.ISO8859-1/articles/rc-scripting article.sgml
Message-ID:  <45EB4DC1.6040903@FreeBSD.org>
In-Reply-To: <20070304130408.GJ40430@comp.chem.msu.su>
References:  <200703031011.l23ABYhb039755@repoman.freebsd.org> <45EA68AF.6000700@FreeBSD.org> <20070304130408.GJ40430@comp.chem.msu.su>

next in thread | previous in thread | raw e-mail | index | archive | help
Yar Tikhiy wrote:
> On Sat, Mar 03, 2007 at 10:35:27PM -0800, Doug Barton wrote:
>> Yar Tikhiy wrote:
>>> yar         2007-03-03 10:11:34 UTC
>>>
>>>  FreeBSD doc repository
>>>
>>>  Modified files:
>>>    en_US.ISO8859-1/articles/rc-scripting article.sgml 
>>>  Log:
>>>  Explain how an rc.d script can use extra command-line arguments.
>>>  
>>>  Revision  Changes    Path
>>>  1.9       +138 -0    
>>>  doc/en_US.ISO8859-1/articles/rc-scripting/article.sgml
>>>
>>> http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/en_US.ISO8859-1/articles/rc-scripting/article.sgml.diff?&r1=1.8&r2=1.9&f=h
>> Yar,
>>
>> This good stuff, thanks! I have one quibble with the last paragraph. 
>> The shift in rc.subr isn't "apparent" as you phrase it, it's literal:
> 
> Yeah, I tried to hide a thing from the reader which he should already
> have known: the shift command. :-)

Again, looking at it from the point of view of a naive reader, there 
is a difference between "I know that the shift command exists, and 
sort of know what it does" and "I know how the shift command is used 
by rc.subr to affect the command line arguments to my script." Your 
article is (to some extent) about teaching the latter, so I think it's 
reasonable to spend some time spoon feeding the reader until they are 
ready for some meat.

>> run_rc_command()
>> {
>>     ...
>>     # Don't repeat the first argument when passing additional command-
>>     # line arguments to the command subroutines.
>>     #
>>     shift 1
>>     rc_extra_args="$*"
> 
> Oh my...  Now I see why existing rc.d scripts use this bogus command:
> 
> 	run_rc_command "$*"
> 
> It's because rc.subr will mess up the arguments anyway.

I think it's more likely that someone would use $* vs. $@ out of force 
of habit. :)

> Perhaps
> we should investigate if "$@" can be used consistently to preserve
> original boundaries between arguments to an rc.d script...

I wouldn't object to some testing on that. I'll change my local copy 
and see how it behaves.

...

> Thank you for this suggestion, it sounds very reasonable!

Glad to help, as always.


Regards,

Doug

-- 

     This .signature sanitized for your protection




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45EB4DC1.6040903>