X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-base.git/blobdiff_plain/310c5346861980c50ac8cd5113198ff0eb04b390..8bd0fc61a1fb3fa5f97dc03d432a60d5bfebf457:/files/lib/init/config-init.sh diff --git a/files/lib/init/config-init.sh b/files/lib/init/config-init.sh index 04ca1a0..d9d1f76 100644 --- a/files/lib/init/config-init.sh +++ b/files/lib/init/config-init.sh @@ -1,30 +1,41 @@ # 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. # -# 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 +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 $? - for p in "${PARENTPACKAGE[@]}"; do - invoke-rc.d "$p" "$1" - done + handle_parents "$1" ;; 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}"