Author: lme (ports committer)
Date: Sat Apr 23 16:19:34 2016
New Revision: 298515
URL: https://svnweb.freebsd.org/changeset/base/298515

Log:
  - 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

Modified:
  head/etc/rc.subr
  head/share/examples/csh/dot.cshrc
  head/share/man/man8/rc.8

Modified: head/etc/rc.subr
==============================================================================
--- head/etc/rc.subr    Sat Apr 23 16:10:54 2016        (r298514)
+++ head/etc/rc.subr    Sat Apr 23 16:19:34 2016        (r298515)
@@ -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

Modified: head/share/examples/csh/dot.cshrc
==============================================================================
--- head/share/examples/csh/dot.cshrc   Sat Apr 23 16:10:54 2016        
(r298514)
+++ head/share/examples/csh/dot.cshrc   Sat Apr 23 16:19:34 2016        
(r298515)
@@ -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 \

Modified: head/share/man/man8/rc.8
==============================================================================
--- head/share/man/man8/rc.8    Sat Apr 23 16:10:54 2016        (r298514)
+++ head/share/man/man8/rc.8    Sat Apr 23 16:19:34 2016        (r298515)
@@ -323,6 +323,10 @@ If the script starts a process (rather t
 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.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to