Commit Briefs
add nshdoas to fix the 'enable' command when stdin is not a TTY (nshdoas)
nshdoas is based on doas(1). It reads /etc/doas.conf and asks for the root password in case no matching rule exists. This avoids the need to fall back on su(1) and makes it possible to use the 'enable' command when sending nsh commands on standard input.
allow nsh to change its behaviour when standard input is not a TTY
Introduce an 'interactive_mode' flag which indicates whether standard input is a TTY. This allows nsh to accept commands on standard input for scripting purposes. This will be needed for better integration of at(1). The 'enable' command will not work in non-interactive mode yet. This will be fixed soon.
add cmdargs_output_setenv
This will be needed for future work.
fill empty configuration files with an example config from /etc/examples
If the user begins editing an empty file which corresponds to a file in the /etc/examples directory offer to load this example for editing. Suggested by Tom Smyth. ok tom, chris
leave pf processing of rc(8) enabled in integration script
Otherwise pfctl -e will never be run during boot, leaving pf disabled by default.
Merge pull request #139 from stspdotname/env
add 'show environment', 'setenv', and 'unsetenv' commands
add 'show environment', 'setenv', and 'unsetenv' commands
Being able to manage environment variables from within nsh will be useful, especially if nsh is used as a login shell because nsh's environment is visible to other commands run by nsh. Setting variables can now affect the behaviour of nsh itself. For example, it is possible to set NSH_MANUAL_PAGE from within a running nsh session and the new value will immediately be used by the 'manual' command. This particular variable is only useful to nsh developers themselves but the same mechanism could be used for user-facing variables in the future. If 'show environment' is run without further arguments all variables will be displayed. Otherwise the value of the specified variable will be displayed if the variable exists. All commands support tab-completion for names which already exist in the environment. The 'setenv' commands appends "=" if the name being completed does not yet exist in the environment.
Merge pull request #138 from stspdotname/cron
add crontab commands: show crontab, crontab edit, crontab install
wgpeer description
ok stsp@
Remove ndp repeat (unused)
ok stsp@
add crontab commands: show crontab, crontab edit, crontab install
For now, display and edit the crontab file of the root user only. The "show crontab" command displays the root user's crontab as shown by the crontab -l command. Editing is implemented via a new CTL handler which knows about the semantics of the crontab(1) command. If an NSH configuration contains crontab rules then the "crontab install" command appears in the running-config in order to install the crontab file managed by nsh to the system with crontab(1).
backout previous: the bgpnsh manual page belongs in manual section 1
Tom suggests sticking to section 8; I overlooked that bgplgsh is in section 8
Merge pull request #137 from stspdotname/priv-root
make root users start out in privileged mode has been discussed already simple change merging
make root users start out in privileged mode
Suggested by chris@