summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVictor Lowther <victor.lowther@gmail.com>2010-04-11 14:59:50 -0500
committerVictor Lowther <victor.lowther@gmail.com>2010-04-11 14:59:50 -0500
commitc66c6f15f1ef15741842b4e573bcd9dfb28a7528 (patch)
tree57bab7f282a12292dbd2d1aa7a8ecb38f70d50de /src
parent68104102c9d1659183fc0ad998274602802c6b41 (diff)
Create a pm-utils local service command for distros that do not have one.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/service33
2 files changed, 34 insertions, 1 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 1ca2bda..c89c852 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -10,7 +10,7 @@ pm_pmu_SOURCES = pm-pmu.c
pm_reset_swap_SOURCES = pm-reset-swap.c
-pm_bin_SCRIPTS = pm-action
+pm_bin_SCRIPTS = pm-action service
bin_SCRIPTS = pm-is-supported
diff --git a/src/service b/src/service
new file mode 100644
index 0000000..4714417
--- /dev/null
+++ b/src/service
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+REL="/etc/slackware-release /etc/slackware-version
+ /etc/arch-release"
+
+svc="/etc/init.d/$1"
+
+exists() { [ -x "$svc" ]; }
+start() { "$svc" start; }
+stop() { "$svc" stop; }
+status() { "$svc" status; }
+
+
+for rel in $REL; do
+ [ -f "$rel" ] || continue
+ case $rel in
+ *slackware*) svc="/etc/rc.d/rc.$1";;
+ *arch*) svc="/etc/rc.d/$1"
+ status() { [ -e "/var/run/daemons/$1" ] && echo "$1 running"; }
+ ;;
+ esac
+ break
+done
+
+exists || { echo "$1: unrecognized service or non-LSB Linux distro"; exit 1; }
+
+case $2 in
+ start|stop|status) "$2" ;;
+ restart) stop; start ;;
+ *) echo "$2: Unrecognized service command"
+ exit 1 ;;
+esac
+ \ No newline at end of file