- Add two new subcommands to rc.subr:
"describe" shows an rc script's description "extracommands" shows an rc script's non-standard commands like "reload", "configtest", "keygen", etc - Update the rc(8) manpage and the tcsh(1) completion examples to reflect these changes Approved by: bapt Sponsored by: Essen Linuxhotel Hackathon 2016 Differential Revision: D452
This commit is contained in:
parent
6c1a5e837d
commit
1980d11b5f
21
etc/rc.subr
21
etc/rc.subr
@ -844,6 +844,10 @@ check_startmsgs()
|
||||
#
|
||||
# enabled Return true if the service is enabled.
|
||||
#
|
||||
# describe Show the service's description
|
||||
#
|
||||
# extracommands Show the service's extra commands
|
||||
#
|
||||
# Variables available to methods, and after run_rc_command() has
|
||||
# completed:
|
||||
#
|
||||
@ -912,7 +916,7 @@ run_rc_command()
|
||||
eval _override_command=\$${name}_program
|
||||
command=${_override_command:-$command}
|
||||
|
||||
_keywords="start stop restart rcvar enabled $extra_commands"
|
||||
_keywords="start stop restart rcvar enabled describe extracommands $extra_commands"
|
||||
rc_pid=
|
||||
_pidcmd=
|
||||
_procname=${procname:-${command}}
|
||||
@ -962,12 +966,13 @@ run_rc_command()
|
||||
if [ "$_elem" != "$rc_arg" ]; then
|
||||
continue
|
||||
fi
|
||||
# if ${rcvar} is set, $1 is not "rcvar"
|
||||
# if ${rcvar} is set, $1 is not "rcvar" and not "describe"
|
||||
# and ${rc_pid} is not set, then run
|
||||
# checkyesno ${rcvar}
|
||||
# and return if that failed
|
||||
#
|
||||
if [ -n "${rcvar}" -a "$rc_arg" != "rcvar" -a "$rc_arg" != "stop" ] ||
|
||||
if [ -n "${rcvar}" -a "$rc_arg" != "rcvar" -a "$rc_arg" != "stop" \
|
||||
-a "$rc_arg" != "describe" ] ||
|
||||
[ -n "${rcvar}" -a "$rc_arg" = "stop" -a -z "${rc_pid}" ]; then
|
||||
if ! checkyesno ${rcvar}; then
|
||||
if [ -n "${rc_quiet}" ]; then
|
||||
@ -1004,6 +1009,16 @@ run_rc_command()
|
||||
|
||||
case "$rc_arg" in # default operations...
|
||||
|
||||
describe)
|
||||
if [ -n "$desc" ]; then
|
||||
echo "$desc"
|
||||
fi
|
||||
;;
|
||||
|
||||
extracommands)
|
||||
echo "$extra_commands"
|
||||
;;
|
||||
|
||||
status)
|
||||
_run_rc_precmd || return 1
|
||||
if [ -n "$rc_pid" ]; then
|
||||
|
@ -98,7 +98,7 @@ complete rsync "c,*:/,F:/," \
|
||||
complete scp "c,*:/,F:/," \
|
||||
"c,*:,F:$HOME," \
|
||||
'c/*@/$hosts/:/'
|
||||
complete service 'c/-/(e l r v)/' 'p/1/`service -l`/' 'n/*/(start stop reload restart status rcvar onestart onestop)/'
|
||||
complete service 'c/-/(e l r v)/' 'p/1/`service -l`/' 'n/*/(start stop reload restart status rcvar describe extracommands onestart onestop oneextracommands)/'
|
||||
complete svn 'C@file:///@`'"${HOME}/etc/tcsh/complete.d/svn"'`@@' \
|
||||
'n@ls@(file:/// svn+ssh:// svn://)@@' \
|
||||
'n@help@(add blame cat checkout cleanup commit copy delete export help import info list ls lock log merge mkdir move propdel \
|
||||
|
@ -323,6 +323,10 @@ If the script starts a process (rather than performing a one-off
|
||||
operation), show the status of the process.
|
||||
Otherwise it is not necessary to support this argument.
|
||||
Defaults to displaying the process ID of the program (if running).
|
||||
.It Cm describe
|
||||
Print a short description of what the script does.
|
||||
.It Cm extracommands
|
||||
Print the script's non-standard commands.
|
||||
.It Cm poll
|
||||
If the script starts a process (rather than performing a one-off
|
||||
operation), wait for the command to exit.
|
||||
|
Loading…
Reference in New Issue
Block a user