Add bsddialog(1) front end for bsdconfig(8).
== bsdconfig == +-----------+ | bsdconfig | Menu to choose: +-----------+ +------------+ +------------+ +----------+ +----------+ | docinstall | | networking | | packages | | timezone | .... +------------+ +------------+ +----------+ +----------+ | v ======================================================================== +--------------------------------------------------------------+ | Middleware: functions to abstract the level below, | | (mainly in share/ common.subr, dialog.subr, ...) | +--------------------------------------------------------------+ ======================================================================== | | v v ^ | +-----------+ +------------+ +----------------- + | dialog(1) | | Xdialog(1) | | bsdinstall(8) | +-----------+ +------------+ +------------------+ dialog, Xdialog, and now bsdconfig uses docsinstall and bsddialog are used via partedit; middleware. some bsdinstall script includes bsdconfig/share/. +--------------+ | bsddialog(1) | +--------------+ ======
Add hooks to allow bsdconfig(8) to use bsddialog(1).
DIALOG=dialog in share/dialog.subr restores dialog(1) by default.
Added TUI_UTILITY to allow bsdinstall scripts to continue to use dialog.
It should be deleted after the "dialog-bsddialog" replacementent.
This is the minimum changes solution, of course can be improved.
DIALOG=dialog restores dialog(1) so a shell scripting expert can add a command-line option to use also dialog(1) useful: for unicode characters and for using bsdconfig(8)' s autosize menu code (*). Otherwise the code for dialog(1) can be deleted, I have not a strong option.
(*) bsddialog should support unicode already, I has to change strlen() with a function to get the right string length. Autosize with --backtitle is easily improved. Both problems are in TODO list).
TUI_UTILITY allows to continue the weekly replacements avoiding one-big-change for bsdinstall. The remaining scripts are: auto, bootconfig, docinstall, hosyname, jail, keymap, netconfig_ipv4, netconfig_ipv6, script, wlanconfig, zfsboot.