factor out common initscript code
[invirt/packages/invirt-base.git] / files / lib / init / config-init.sh
diff --git a/files/lib/init/config-init.sh b/files/lib/init/config-init.sh
new file mode 100644 (file)
index 0000000..1268a1b
--- /dev/null
@@ -0,0 +1,33 @@
+# For a package which only configures another, "parent" package.
+#
+# Global variable PARENTPACKAGE names parent; may be array
+# for zero or many parents.
+#
+# Global variable PACKAGE names this package, for log message.
+#
+# Requires bash.
+
+. /lib/init/vars.sh
+. /lib/lsb/init-functions
+. /lib/init/gen-files.sh
+
+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
+        /etc/init.d/"$p" "$1"
+      done
+      ;;
+    stop)
+      for p in "${PARENTPACKAGE[@]}"; do
+        /etc/init.d/"$p" "$1"
+      done
+      ;;
+    *)
+      log_success_msg "Usage: /etc/init.d/$PACKAGE {start|reload|force-reload|restart|stop}"
+      ;;
+  esac
+}