source: roaraudio/dist/debian-like/roaraudio @ 3191:9f94b54b1e27

Last change on this file since 3191:9f94b54b1e27 was 3053:069ed1f50d04, checked in by phi, 14 years ago

set -b correctly on esd emulation enabled

  • Property exe set to *
File size: 2.9 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   _host='localhost';
59   [ "$ROARD_HOST" = '' ]   || _host="$ROARD_HOST"
60   ESD_OPTS="--new-sock --proto esd -t -b $_host -p 16001"
61  ;;
62esac
63
64[ "$ROARD_SOCKET" = '' ]  || ROARD_OPTS="--sock $ROARD_SOCKET $ROARD_OPTS"
65[ "$ROARD_PORT"   = '' ]  || ROARD_OPTS="--port $ROARD_PORT $ROARD_OPTS"
66
67if [ "$ROARD_OBJECT" = '' ]
68then
69 [ "$ROARD_HOST" = '' ]   || ROARD_OPTS="--bind $ROARD_HOST $ROARD_OPTS"
70else
71 ROARD_OPTS="--sock $ROARD_HOST::$ROARD_OBJECT $ROARD_OPTS"
72fi
73
74[ "$ROARD_SLP"  = 'YES' ] && ROARD_OPTS="--slp $ROARD_OPTS"
75
76[ "$ROARD_RATE"    = '' ] || ROARD_OPTS="-R $ROARD_RATE $ROARD_OPTS"
77[ "$ROARD_CHANNEL" = '' ] || ROARD_OPTS="-C $ROARD_CHANNEL $ROARD_OPTS"
78[ "$ROARD_BITS"    = '' ] || ROARD_OPTS="-B $ROARD_BITS $ROARD_OPTS"
79
80[ "$ROARD_DRIVER" = '' ]  || ROARD_OPTS="-o $ROARD_DRIVER $ROARD_OPTS"
81[ "$ROARD_DEVICE" = '' ]  || ROARD_OPTS="-O $ROARD_DEVICE $ROARD_OPTS"
82[ "$ROARD_DRIVER_OPTIONS" = '' ] && ROARD_DRIVER_OPTIONS='sync'
83ROARD_OPTS="-oP -oO $ROARD_DRIVER_OPTIONS $ROARD_OPTS"
84
85if [ "$ROARD_USER" = '' ]
86then
87 ROARD_OPTS="--setuid -U roard $ROARD_OPTS"
88else
89 ROARD_OPTS="--setuid -U $ROARD_USER $ROARD_OPTS"
90fi
91
92ROARD_OPTS="--setgid $ROARD_OPTS"
93[ "$ROARD_GROUP"  = '' ]  || ROARD_OPTS="-G $ROARD_GROUP $ROARD_OPTS"
94
95[ "$ROARD_CHROOT" = '' ] || ROARD_OPTS="--chroot $ROARD_CHROOT $ROARD_OPTS"
96
97ROARD_OPTS="$ROARD_OPTS $ESD_OPTS"
98
99case "$1" in
100  start)
101        echo -n "Starting $DESC: $NAME"
102        $DAEMON --start $ROARD_OPTS
103        echo "."
104        ;;
105  stop)
106        echo -n "Stopping $DESC: $NAME"
107        $DAEMON --stop $ROARD_OPTS
108        echo "."
109        ;;
110  restart)
111        echo -n "Restarting $DESC: $NAME"
112        $DAEMON --restart $ROARD_OPTS
113        echo "."
114        ;;
115  *)
116        echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
117        exit 1
118        ;;
119esac
120
121exit 0
Note: See TracBrowser for help on using the repository browser.