Date: Thu, 19 Jan 2012 22:31:57 -0800 From: Devin Teske <devin.teske@fisglobal.com> To: Ron McDowell <rcm@fuzzwad.org> Cc: freebsd-sysinstall@freebsd.org Subject: Re: My thoughts on "bsdconfig" Message-ID: <DCCC62A5-CACE-4EF2-8C95-9FBB8E1AE036@fisglobal.com> In-Reply-To: <4F170BFD.9060407@fuzzwad.org> References: <4F1361C9.4080403@fuzzwad.org> <4F15C86B.5020802@fuzzwad.org> <039201ccd559$d77e0e30$867a2a90$@fisglobal.com> <4F170BFD.9060407@fuzzwad.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 18, 2012, at 10:14 AM, Ron McDowell wrote: > On 1/17/12 2:51 PM, Devin Teske wrote: >> However, I feel that a better approach would be to allow /usr/libexec/bs= dconfig >> to function more like /etc/rc.d -- specifically that simply installing a= new >> '*.rc' file into said-directory is enough to get a new menu item to appe= ar. >>=20 >> The specifics of which I open to discussion, however I envision the main >> bsdconfig script doing the following on start-up to accommodate a modular >> architecture of the root (main) menu: >>=20 >> 1. Look in /usr/libexec/bsdconfig for '*.rc' (or some similar naming >> convention). >> 2. Source each one in the following manner: >> 2.a. first, syntax-check the rc file using "sh -n FILE". If this fails, = warn and >> skip >> 2.b. next, source the rc file using "." built-in safely from within sub-= shell. >> If this fails, warn and skip. >> 2.c. The rc file conditionally provides in some manner (like name=3D in = rc.d >> scripts) details on how to represent the menu item for this module >> 3. bsdconfig uses said details to construct the menu-item for each indiv= idual >> module >> 4. bsdconfig presents the menu >> 5. When a menu item is selected, invoke the appropriate function within = the >> selected module >>=20 >> It makes expanding the tool quite easy as (conceivably) there would be a >> template for creating new modules (just as there is a template for creat= ing new >> rc.d scripts). >=20 > I like this. But it will take some serious in-depth thought. >=20 I've been thinking about how annoying it was that I had to either (a) read = a man-page or (b) know to look in /usr/libexec/bsdinstall to know which arg= uments I can pass to bsdinstall to get to the network configuration module. To set a better example, I'm thinking that the main-menu of bsdconfig shoul= d consist of: X Exit Utility 1 <module_filename> <short_description> 2 <module_filename> <short_description> ... A ad nauseum Sorted alphabetically, the benefit here is that the main-menu continually r= eminds the user that they can invoke any sub-menu directly by it's displaye= d name (which not-coincidentally is the modules filename). Any module insta= lled into the module-directort will be displayed alphabetically by it's fil= ename. I'm going to propose that the module directory be /usr/libexec/bsdconfig does this sound like a good start? Regarding the "<short_description>" I have an idea to use ident(1) to pull = out $Title$ when processing modules to create the main menu. --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DCCC62A5-CACE-4EF2-8C95-9FBB8E1AE036>