Move 2 duplicate searches into a function.
The diff also ignores (RCS) subdirectories.
$ find /etc/rc.d ! -type f
/etc/rc.d
/etc/rc.d/RCS
Index: rcctl.sh
===================================================================
RCS file: /cvs/src/usr.sbin/rcctl/rcctl.sh,v
retrieving revision 1.43
diff -u -p -r1.43 rcctl.sh
--- rcctl.sh 11 Oct 2014 19:12:19 -0000 1.43
+++ rcctl.sh 13 Oct 2014 20:10:34 -0000
@@ -93,7 +93,7 @@ svc_get_defaults()
print -r -- "$(svc_default_enabled_flags ${_svc})"
svc_default_enabled ${_svc}
else
- for _i in $(ls -A /etc/rc.d | grep -v rc.subr); do
+ get_svc_list | while read _i; do
echo "${_i}_flags=$(svc_default_enabled_flags ${_i})"
done
for _i in ${_special_services}; do
@@ -134,7 +134,7 @@ svc_get_status()
svc_get_flags ${_svc}
svc_is_enabled ${_svc}
else
- for _i in $(ls -A /etc/rc.d | grep -v rc.subr); do
+ get_svc_list | while read _i; do
echo "${_i}_flags=$(svc_get_flags ${_i})"
done
for _i in ${_special_services}; do
@@ -175,6 +175,12 @@ svc_is_special()
[ -n "${_svc}" ] || return
echo ${_special_services} | grep -qw ${_svc}
+}
+
+get_svc_list()
+{
+ # Ignore rc.subr & (RCS) subdirectories:
+ find /etc/rc.d -type f -maxdepth 1 ! -name rc.subr
}
append_to_pkg_scripts()