freebsd-ports/sysutils/dae/files/dae.sh
Martin Wilke c1e9addf82 The dae program is used to list all daemon control scripts installed
within the rc.d system. It may also be used to execute any of these
scripts with the parameters provided.

PR:		ports/132586
Submitted by:	Dylan Bridgman
2009-03-19 16:33:06 +00:00

53 lines
1.2 KiB
Bash

#!/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