Commit Graph

40 Commits

Author SHA1 Message Date
Devin Teske
7323adac99 Import media selection/preparation framework (sysinstall inspired). Makes
accessing files from various types of media nice and abstracted away from
the wet-work involved in preparing, validating, and initializing those
types of media. This will be used for the package management system module
and other modules that need access to files and want to allow the user to
decide where those files come from (either in a scripted fashion, prompted
fashion, or any combination thereof).

Heavily inspired by sysinstall and even uses the same reserved words so
that scripts are portable. Coded over months, tested continuously through-
out, and reviewed several times.

Some notes about the changes:
- Move network-setting acquisition/validation routines to media/tcpip.subr
- The options screen from sysinstall has been converted to a dialog menu
- The "UFS" media choice is renamed to "Directory" to reflect how sysinstall
  treats the choice and a new [true] "UFS" media choice has been added that
  acts on real UFS partitions (such as external disks with disklabels).
- Many more help files have been resurrected from sysinstall (I noticed that
  some of the content seems a bit dated; I gave them a once-over but they
  could really use an update).
- A total of 10 media choices are presented (via mediaGetType) including:
  CD/DVD, FTP, FTP Passive, HTTP Proxy, Directory, NFS, DOS, UFS, Floppy, USB
- Novel struct/device management layer for managing the issue of passing
  more information than can comfortably fit in an argument list.
2013-02-25 19:55:32 +00:00
Devin Teske
8ff9900c28 Backward compatibility fix: treat cmds loaded as a script as nonInteractive 2013-01-20 17:48:56 +00:00
Devin Teske
db7b0ba78f Don't use f_show_msg() unless printf(1) syntax is required (this reduces the
number of unnecessary forks).
2013-01-14 21:03:34 +00:00
Devin Teske
27ff90aa87 Add new f_yesno/f_noyes wrapper functions (which take printf(1) syntax). 2013-01-14 01:15:25 +00:00
Devin Teske
1d70f5f445 Update copyright following last commit. 2013-01-07 00:18:03 +00:00
Devin Teske
3da75d2e7b Add nonInteractive support to f_dialog_yesno/noyes(). 2013-01-07 00:15:52 +00:00
Devin Teske
99bc932ec2 Add support for scripting (sysinstall style).
Reviewed by:	jilles
2013-01-05 02:08:47 +00:00
Devin Teske
450f13a446 Comments. 2013-01-03 15:48:00 +00:00
Devin Teske
5ffea47a33 Comments. 2012-12-29 00:30:30 +00:00
Devin Teske
802a85b13d Add missing enforcement of height restriction after minor adjustment. 2012-12-29 00:06:26 +00:00
Devin Teske
30a8a39e07 Add support for running without a controlling terminal (for example, when
running as an rvalue to a pipe).
2012-12-29 00:01:24 +00:00
Devin Teske
9c83db2d4c Allow debug output to be logged to a file (set $debugFile to target pathname)
or both stdout and a file (precede $debugFile pathname with a plus-sign, `+').
2012-12-28 23:49:17 +00:00
Devin Teske
56961fd794 Add more debugging to help with diagnosis of program-flow when needed. 2012-12-25 10:47:45 +00:00
Devin Teske
d3c2b8b665 Change axiom for initialization. Including script can disable (default)
automatic initialization by setting appropriate variable to particular value.
2012-12-21 20:46:58 +00:00
Devin Teske
13aadd84f5 New f_show_info() function for dialog(1) --infobox using printf(1) syntax. 2012-12-21 20:29:28 +00:00
Devin Teske
fa2e39c892 Use f_show_help() where printf(1) syntax is desired. 2012-12-21 20:11:41 +00:00
Devin Teske
526e1dc1c0 Improve the debugging abilities and clean up debug messages. In most cases,
all one has to do is set the environment variable DEBUGGING to get the debug
messages to appear on the console.
2012-12-21 19:26:17 +00:00
Devin Teske
298cf604cc Add much-needed dialog(1) --inputbox function for simplifying the process of
requesting input from the user.
2012-12-21 18:58:19 +00:00
Devin Teske
540bebd789 Allow setting of NULL titles with f_dialog_[back]title().
Approved by:	adrian (co-mentor) (implicit)
2012-11-27 22:14:22 +00:00
Devin Teske
79ec1cd546 Change self-initialization to occur when loaded versus the previous behavior
which was to self-initialize during the first function-call. This didn't work
so well because the first call was may or may-not be within a sub-shell
(which prevented proper setup of the pass-thru file descriptor, resulting in
dialogs that would not display).

Approved by:	adrian (co-mentor) (implicit)
2012-11-27 22:11:53 +00:00
Devin Teske
6e908c6abc Whitespace.
Approved by:	adrian (co-mentor) (implicit)
2012-11-24 07:02:31 +00:00
Devin Teske
48c5129f93 Replicate a feature from sysinstall documented in
stable/9/usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):

If /usr/sbin/sysinstall is linked to another filename, say
`/usr/local/bin/configPackages', then the basename will be used
as an implicit command name.

To get a list of modules you can link to, see `bsdconfig -h' output.

Approved by:	adrian (co-mentor) (implicit)
2012-11-16 00:59:11 +00:00
Devin Teske
de8fd13b91 Tighten-up displays that use a NULL prompt (e.g., networking and usermgmt).
Approved by:	adrian (co-mentor) (implicit)
2012-10-26 01:47:59 +00:00
Devin Teske
254917d4fe Fix copy/paste error.
Approved by:	adrian (co-mentor) (implicit)
2012-10-26 00:46:09 +00:00
Devin Teske
40dfc82d35 Switch from using a msgbox to display help files to a textbox instead. The
problem with using a msgbox was one of truncation in the case of Xdialog(1)
and lack of screen real-estate (since the msgbox is not scrollable in X11
while a textbox is).

The textbox renders the text much better and is more appropriate for this
type of data display.

Approved by:	adrian (co-mentor) (implicit)
2012-10-26 00:31:25 +00:00
Devin Teske
1459925049 Resurrect usage.hlp and securelevel.hlp from sysinstall(8) and integrate them
into bsdconfig(8).

Approved by:	adrian (co-mentor) (implicit)
2012-10-22 18:01:38 +00:00
Devin Teske
6e0adcda1f More-accurately replicate the help system from sysinstall(8). However, also
improve upon the system by giving the user a "Help" button instead of requiring
the user to press F1.

NOTE: In FreeBSD-9 and higher, dialog(1) does not support the F1 hook, so the
      mechanism for providing help to the user had to be changed to a button.

This now means we can resurrect *.hlp files from usr.sbin/sysinstall/help/ as-
is and reusing them as-needed in bsdconfig (holding to the goal of losing as
little functionality from sysinstall as possible).

Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-10-18 18:43:54 +00:00
Devin Teske
7fba6f489e Fix a bug where blank lines were not being counted (because awk's split()
function returns zero when $0 is the NULL string).

Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-10-18 17:09:45 +00:00
Devin Teske
7f72bb4405 Fix typo.
Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-10-18 07:55:09 +00:00
Devin Teske
9da4528e6f Ask to become root via sudo(8) and give user ability to save this preference.
Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-10-17 21:48:45 +00:00
Devin Teske
2a357efa9c Import sysutils/sysrc from the ports tree (current version 5.1). Importing
disconnected under the WITH_BSDCONFIG flag (a good idea since this version of
sysrc(8) indeed requires the `sysrc.subr' module installed by bsdconfig(8)).

Multiple reasons sysrc should not simply continue to live in ports. The most
important being that it is tightly coupled with the base.

Approved by:	adrian (co-mentor)
2012-10-03 02:32:47 +00:00
Devin Teske
1f843bc059 Allow deferred word-splitting via f_sysrc_get() by allowing $IFS in the
"clean-room" environment used to query rc.conf(5) parameters.

This brings bsdconfig(8)'s sysrc.subr in-line with both the sysrc(8) manual
[provided by sysutils/sysrc] and sysrc(8)'s own sysrc.subr (now identical to
bsdconfig(8)'s sysrc.subr as of this patch).

Finally, this will allow a clean import of sysutils/sysrc (sans sysrc.subr,
already provided here).

Reviewed by:	jilles
Approved by:	adrian (co-mentor)
2012-09-29 03:41:21 +00:00
Devin Teske
9b0f0cc5bb Sanitize varname argument in f_sysrc_find. This is as much for security as it
is for sanity.

Reviewed by:	jilles
Approved by:	adrian (co-mentor)
2012-09-28 01:39:25 +00:00
Devin Teske
0ad5179dee Always use RC_CONFS when set, even if NULL. Previously only used if non-NULL.
Reviewed by:	jilles, adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-09-23 17:47:01 +00:00
Devin Teske
8d8d314d78 Replace "( : ${var?} )" syntax with better "[ ${var+set} ]" syntax.
Reviewed by:	jilles, adrian (co-mentor)
Approved by:	jilles, adrian (co-mentor)
2012-09-22 04:04:02 +00:00
Devin Teske
2d49f165a9 Spelling and whitespace corrections.
Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-09-22 03:11:35 +00:00
Devin Teske
fb7d723e6b Reverse SVN r240770 -- jilles@ made a suggestion that allowed us to redesign
our embedded rescue environment to support /dev/null making r240770 obsolete.

Reviewed by:	jilles, adrian (co-mentor)
Approved by:	jilles, adrian (co-mentor)
2012-09-21 19:03:25 +00:00
Devin Teske
104a7f3e1d Replace redirections to /dev/null with "close file-descriptor" syntax (>&-).
Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-09-21 01:36:20 +00:00
Devin Teske
89498fdf41 Change all invocations of dialog(1) to no-longer require temporary files.
This allows bsdconfig to -- like bsdinstall -- operate from read-only media.

Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-09-20 23:44:13 +00:00
Devin Teske
ab2043b81e Move major includes into /usr/share/bsdconfig for easy external access.
Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
2012-09-18 22:28:42 +00:00