From owner-freebsd-rc@FreeBSD.ORG Sun Mar 4 22:52:52 2007 Return-Path: X-Original-To: freebsd-rc@FreeBSD.org Delivered-To: freebsd-rc@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6824D16A403 for ; Sun, 4 Mar 2007 22:52:52 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mx24.fluidhosting.com [204.14.89.7]) by mx1.freebsd.org (Postfix) with SMTP id 1E50613C47E for ; Sun, 4 Mar 2007 22:52:51 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: (qmail 2101 invoked by uid 399); 4 Mar 2007 22:52:51 -0000 Received: from localhost (HELO lap.dougb.net) (dougb@dougbarton.us@127.0.0.1) by localhost with SMTP; 4 Mar 2007 22:52:51 -0000 X-Originating-IP: 127.0.0.1 Message-ID: <45EB4DC1.6040903@FreeBSD.org> Date: Sun, 04 Mar 2007 14:52:49 -0800 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Thunderbird 2.0b2 (X11/20070116) MIME-Version: 1.0 To: Yar Tikhiy References: <200703031011.l23ABYhb039755@repoman.freebsd.org> <45EA68AF.6000700@FreeBSD.org> <20070304130408.GJ40430@comp.chem.msu.su> In-Reply-To: <20070304130408.GJ40430@comp.chem.msu.su> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-rc@FreeBSD.org Subject: Re: cvs commit: doc/en_US.ISO8859-1/articles/rc-scripting article.sgml X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Mar 2007 22:52:52 -0000 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