Make "rcctl status" output match rc.conf(8) format.
authorajacoutot <ajacoutot@openbsd.org>
Thu, 21 Aug 2014 12:47:22 +0000 (12:47 +0000)
committerajacoutot <ajacoutot@openbsd.org>
Thu, 21 Aug 2014 12:47:22 +0000 (12:47 +0000)
ok jasper@

usr.sbin/rcctl/rcctl.8
usr.sbin/rcctl/rcctl.sh

index de10376..c8997b4 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $OpenBSD: rcctl.8,v 1.4 2014/08/21 10:15:11 schwarze Exp $
+.\"    $OpenBSD: rcctl.8,v 1.5 2014/08/21 12:47:22 ajacoutot Exp $
 .\"
 .\" Copyright (c) 2014 Antoine Jacoutot <ajacoutot@openbsd.org>
 .\"
@@ -64,8 +64,10 @@ Display the value of
 .Ar service
 or
 .Ar daemon Ns _flags .
-Without an argument, list all services and daemons
-with their current status and flags.
+Without an argument, display all services and
+.Ar daemon Ns _flags
+with their values in a format compatible with
+.Xr rc.conf 8 .
 .It Ar action daemon
 Run the
 .Xr rc.d 8
index b70f3f4..2e351fc 100644 (file)
@@ -103,16 +103,15 @@ svc_get_flags()
 
 svc_get_status()
 {
-       local _svc=$1
+       local _affix _svc=$1
 
        if [ -n "${_svc}" ]; then
                svc_get_flags ${_svc} | sed '/^$/d'
                svc_is_enabled ${_svc}
        else
                for _i in $(svc_get_all); do
-                       printf "%18s" ${_i}
-                       echo -n "\tflags="
-                       svc_get_flags ${_i}
+                       svc_is_special ${_i} && unset _affix || _affix="_flags"
+                       echo "${_i}${_affix}=$(svc_get_flags ${_i})"
                done
        fi
 }