source: roaraudio/dist/debian-like/roaraudio @ 2585:2ed2f31c1459

Last change on this file since 2585:2ed2f31c1459 was 2585:2ed2f31c1459, checked in by phi, 15 years ago

new init script

  • Property exe set to *
File size: 2.8 KB
Line 
1#!/bin/sh
2#
3set -e
4
5PATH=/sbin:/bin:/usr/sbin:/usr/bin
6DAEMON=/usr/bin/roard
7ROARCTL=/usr/bin/roarctl
8NAME=roaraudio
9DESC="RoarAudio"
10
11PIDFILE=/var/run/`basename $DAEMON`.pid
12SCRIPTNAME=/etc/init.d/$NAME
13
14# Gracefully exit if the package has been removed.
15test -x $DAEMON || exit 0;
16
17# Read config file if it is present.
18if [ -r /etc/default/$NAME ]
19then
20    . /etc/default/$NAME
21fi
22
23if [ "$ROARAUDIO_DEFAULT_SOCKET" != '' ]
24then
25 ln -s "$ROARAUDIO_DEFAULT_SOCKET" /etc/roarserver
26fi
27
28[ "$ROARD" = 'YES' ] || exit 0;
29
30ROARD_OPTS="--daemon $ROARD_OPTS"
31
32[ "$PIDFILE"        = ''       ] || ROARD_OPTS="--pidfile $PIDFILE $ROARD_OPTS"
33[ "$ROARD_REALTIME" = 'YES'    ] && ROARD_OPTS="--realtime $ROARD_OPTS"
34[ "$ROARD_REALTIME" = 'DOUBLE' ] && ROARD_OPTS="--realtime --realtime $ROARD_OPTS"
35
36[ "$ROARD_LOCATION" = ''       ] || ROARD_OPTS="--location $ROARD_LOCATION $ROARD_OPTS"
37
38case "$ROARD_AF" in
39  UNIX|unix)
40   ROARD_OPTS="-u $ROARD_OPTS"
41  ;;
42  TCP|tcp)
43   ROARD_OPTS="-t $ROARD_OPTS"
44  ;;
45  DECnet|DECNET|decnet)
46   ROARD_OPTS="-n $ROARD_OPTS"
47  ;;
48esac
49
50ESD_OPTS=''
51
52case "$ROARD_EMUL_ESD_AF" in
53  UNIX|unix)
54   ESD_OPTS="--new-sock --proto esd -u -b /tmp/.esd/socket"
55   mkdir /tmp/.esd/ 2> /dev/null;
56  ;;
57  TCP|tcp)
58   ESD_OPTS="--new-sock --proto esd -t -b localhost -p 16001"
59  ;;
60esac
61
62[ "$ROARD_SOCKET" = '' ]  || ROARD_OPTS="--sock $ROARD_SOCKET $ROARD_OPTS"
63[ "$ROARD_PORT"   = '' ]  || ROARD_OPTS="--port $ROARD_PORT $ROARD_OPTS"
64
65if [ "$ROARD_OBJECT" = '' ]
66then
67 [ "$ROARD_HOST" = '' ]   || ROARD_OPTS="--bind $ROARD_HOST $ROARD_OPTS"
68else
69 ROARD_OPTS="--sock $ROARD_HOST::$ROARD_OBJECT $ROARD_OPTS"
70fi
71
72[ "$ROARD_SLP"  = 'YES' ] && ROARD_OPTS="--slp $ROARD_OPTS"
73
74[ "$ROARD_RATE"    = '' ] || ROARD_OPTS="-R $ROARD_RATE $ROARD_OPTS"
75[ "$ROARD_CHANNEL" = '' ] || ROARD_OPTS="-C $ROARD_CHANNEL $ROARD_OPTS"
76[ "$ROARD_BITS"    = '' ] || ROARD_OPTS="-B $ROARD_BITS $ROARD_OPTS"
77
78[ "$ROARD_DRIVER" = '' ]  || ROARD_OPTS="-o $ROARD_DRIVER $ROARD_OPTS"
79[ "$ROARD_DEVICE" = '' ]  || ROARD_OPTS="-O $ROARD_DEVICE $ROARD_OPTS"
80[ "$ROARD_DRIVER_OPTIONS" = '' ] && ROARD_DRIVER_OPTIONS='sync'
81ROARD_OPTS="-oP -oO $ROARD_DRIVER_OPTIONS $ROARD_OPTS"
82
83if [ "$ROARD_USER" = '' ]
84then
85 ROARD_OPTS="--setuid -U roard $ROARD_OPTS"
86else
87 ROARD_OPTS="--setuid -U $ROARD_USER $ROARD_OPTS"
88fi
89
90ROARD_OPTS="--setgid $ROARD_OPTS"
91[ "$ROARD_GROUP"  = '' ]  || ROARD_OPTS="-G $ROARD_GROUP $ROARD_OPTS"
92
93[ "$ROARD_CHROOT" = '' ] || ROARD_OPTS="--chroot $ROARD_CHROOT $ROARD_OPTS"
94
95ROARD_OPTS="$ROARD_OPTS $ESD_OPTS"
96
97case "$1" in
98  start)
99        echo -n "Starting $DESC: $NAME"
100        $DAEMON --start $ROARD_OPTS
101        echo "."
102        ;;
103  stop)
104        echo -n "Stopping $DESC: $NAME"
105        $DAEMON --stop $ROARD_OPTS
106        echo "."
107        ;;
108  restart)
109        echo -n "Restarting $DESC: $NAME"
110        $DAEMON --restart $ROARD_OPTS
111        echo "."
112        ;;
113  *)
114        echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
115        exit 1
116        ;;
117esac
118
119exit 0
Note: See TracBrowser for help on using the repository browser.