Commits


add nshdoas to fix the 'enable' command when stdin is not a TTY 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@


add a "scheduler" alias for the "crontab" commands; suggested by Tom


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).


fix section number of references to bgplgsh(8) in bgpnsh man page


fix section number displayed in the bgpnsh man page


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


the bgpnsh manual page belongs in manual section 1


point readers at Section 7 from the enable command section


document new behaviour of the enable commmand


man page cleanup in the section which explains the various shell prompts


fix a typo I put into the man page


man page updates related to the new -e re-exec feature


Merge pull request #137 from stspdotname/priv-root make root users start out in privileged mode has been discussed already simple change merging


sync dist file list


make root users start out in privileged mode Suggested by chris@


this file contains code derived from commands.c; add copyright from there