config-init.sh: degrade to non-bash gracefully
authorGreg Price <price@mit.edu>
Sun, 28 Dec 2008 07:56:18 +0000 (02:56 -0500)
committerGreg Price <price@mit.edu>
Sun, 28 Dec 2008 07:56:18 +0000 (02:56 -0500)
svn path=/trunk/packages/invirt-base/; revision=1928

debian/changelog
files/lib/init/config-init.sh

index ea065ed..c187e35 100644 (file)
@@ -1,6 +1,7 @@
 invirt-base (0.0.18) unstable; urgency=low
 
   * run_parts_list: fix unclear docstring
 invirt-base (0.0.18) unstable; urgency=low
 
   * run_parts_list: fix unclear docstring
+  * config-init.sh: degrade to non-bash gracefully
 
  -- Greg Price <price@mit.edu>  Sun, 28 Dec 2008 01:00:07 -0500
 
 
  -- Greg Price <price@mit.edu>  Sun, 28 Dec 2008 01:00:07 -0500
 
index 04ca1a0..d9d1f76 100644 (file)
@@ -1,30 +1,41 @@
 # For a package which only configures another, "parent" package.
 #
 # For a package which only configures another, "parent" package.
 #
-# Global variable PARENTPACKAGE names parent; may be array
-# for zero or many parents.
+# Global variable PARENTPACKAGE names parent; unset for no parent,
+# array for (zero or one or) many parents.
 #
 # Global variable PACKAGE names this package, for log message.
 #
 #
 # Global variable PACKAGE names this package, for log message.
 #
-# Requires bash.
+# If BASH_VERSION is null or unset, accepts only one parent in
+# PARENTPACKAGE, or empty for zero.
 
 . /lib/init/vars.sh
 . /lib/lsb/init-functions
 . /lib/init/gen-files.sh
 
 
 . /lib/init/vars.sh
 . /lib/lsb/init-functions
 . /lib/init/gen-files.sh
 
+if [ $BASH_VERSION ]; then
+  handle_parents () {
+    for p in "${PARENTPACKAGE[@]}"; do
+      invoke-rc.d "$p" "$1"
+    done
+  }
+else
+  handle_parents () {
+    if [ -n "$PARENTPACKAGE" ]; then
+      invoke-rc.d "$PARENTPACKAGE" "$1"
+    fi
+  }
+fi
+
 config_init () {
   case "$1" in
     start|reload|force-reload|restart)
       log_begin_msg "Reloading config for $PACKAGE"
       gen_files
       log_end_msg $?
 config_init () {
   case "$1" in
     start|reload|force-reload|restart)
       log_begin_msg "Reloading config for $PACKAGE"
       gen_files
       log_end_msg $?
-      for p in "${PARENTPACKAGE[@]}"; do
-        invoke-rc.d "$p" "$1"
-      done
+      handle_parents "$1"
       ;;
     stop)
       ;;
     stop)
-      for p in "${PARENTPACKAGE[@]}"; do
-        invoke-rc.d "$p" "$1"
-      done
+      handle_parents "$1"
       ;;
     *)
       log_success_msg "Usage: /etc/init.d/$PACKAGE {start|reload|force-reload|restart|stop}"
       ;;
     *)
       log_success_msg "Usage: /etc/init.d/$PACKAGE {start|reload|force-reload|restart|stop}"