summaryrefslogtreecommitdiff
path: root/sysutils/dae/files/dae.sh
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/dae/files/dae.sh')
-rw-r--r--sysutils/dae/files/dae.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/sysutils/dae/files/dae.sh b/sysutils/dae/files/dae.sh
new file mode 100644
index 000000000000..69559b31aa29
--- /dev/null
+++ b/sysutils/dae/files/dae.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+###
+# Author: Light
+# Email: isibane@gmail.com
+###
+
+usage()
+{
+ echo "Usage: `basename $0` [-a] | [-l] | [-L] | <service-name> [action]"
+ echo -e "\t-h Show this message"
+ echo -e "\t-a Show all service names"
+ echo -e "\t-l Show system service names"
+ echo -e "\t-L Show port service names"
+ echo -e "\t-x Show X11 service names"
+ exit 1
+}
+
+list_system() { find /etc/rc.d -type f -perm +a+x 2>/dev/null; }
+list_ports() { find /usr/local/etc/rc.d -type f -perm +a+x 2>/dev/null; }
+list_x11() { find /usr/X11R6/etc/rc.d -type f -perm +a+x 2>/dev/null; }
+list_filter() { sed "s/.sh$//g;s/.*\\///g" | sort | column; }
+
+set -- `getopt "ahlLx" "$@"` || {
+ usage
+}
+while :
+do
+ case "$1" in
+ -a) ( list_system; list_ports; list_x11) | list_filter; exit 0 ;;
+ -l) list_system | list_filter; exit 0 ;;
+ -L) list_ports | list_filter; exit 0 ;;
+ -x) list_x11 | list_filter; exit 0 ;;
+ -h) usage ;;
+ --) break ;;
+ esac
+ shift
+done
+shift
+if [ -z "$1" ]
+then
+ usage
+fi
+service_name=`( list_system; list_ports; list_x11 ) | grep -e "/$1[^/]*$\|/$1[^/]*\.sh$" | head -n 1`
+if [ -z "$service_name" ]
+then
+ echo "Error: Unknown service '$1*[.sh]'"
+ echo
+ usage
+else
+ $service_name $2
+fi
+exit 0