SOURCES: service_generator.sh (NEW) - helper script for %service m...

glen glen at pld-linux.org
Thu Dec 1 02:33:34 CET 2005


Author: glen                         Date: Thu Dec  1 01:33:34 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- helper script for %service macro body generator with more brains than rpm macros allow

---- Files affected:
SOURCES:
   service_generator.sh (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/service_generator.sh
diff -u /dev/null SOURCES/service_generator.sh:1.1
--- /dev/null	Thu Dec  1 02:33:34 2005
+++ SOURCES/service_generator.sh	Thu Dec  1 02:33:29 2005
@@ -0,0 +1,69 @@
+#!/bin/sh
+# init vars
+service="$1"
+action="$2"
+desc="$3"
+quiet=$quiet
+if [ -z "$desc" ]; then
+	desc="$1 service"
+fi
+
+# action stop implies quiet mode and check disabling
+if [ $action = stop ]; then
+	quiet=1
+else
+	check=1
+fi
+
+# common part
+service_body() {
+	cat <<-EOF
+	if [ -f /var/lock/subsys/$service ]; then
+		/etc/rc.d/init.d/$service $action 1>&2
+EOF
+	if [ "$quiet" != 1 ]; then
+		cat <<-EOF
+		else
+			echo 'Run "/etc/rc.d/init.d/$service start" to start $desc.'
+EOF
+	fi
+	cat <<-EOF
+	fi
+EOF
+}
+
+# include check function
+skip_auto_restart_body() {
+	cat <<-EOF
+
+	skip_auto_restart() {
+		. /etc/sysconfig/rpm
+		[ -f /etc/sysconfig/$service ] && . /etc/sysconfig/$service
+		echo \${RPM_SKIP_AUTO_RESTART:-no}
+	};
+EOF
+}
+
+echo ""
+if [ "$check" = 1 ]; then
+	skip_auto_restart_body
+	echo 'if [ $(skip_auto_restart) = no ]; then'
+	service_body
+	echo 'fi'
+else
+	service_body
+fi
+
+exit 0
+
+# for testing - no syntax errors allowed
+rpm -E '%service monit restart' | sh
+rpm -E '%service monit restart -q' | sh
+rpm -E '%service monit stop' | sh
+rpm -E '%service monit stop -q' | sh
+rpm -E '%service monit stop "Monit Daemon"' | sh
+rpm -E '%service monit stop "Monit Daemon" -q' | sh
+rpm -E '%service monit restart "Monit Daemon"' | sh
+rpm -E '%service monit restart -q "Monit Daemon"' | sh
+rpm -E '%service monit reload "Monit Daemon"' | sh
+rpm -E '%service monit reload -q "Monit Daemon"' | sh
================================================================



More information about the pld-cvs-commit mailing list