source: roaraudio/dist/debian-like/roaraudio @ 3192:ef97ba3d14a7

Last change on this file since 3192:ef97ba3d14a7 was 3192:ef97ba3d14a7, checked in by phi, 14 years ago

include patches for debian packet

  • Property exe set to *
File size: 4.4 KB
Line 
1#!/bin/sh
2
3# roaraudio initscript
4#
5# Copyright (c) 2008-2010 Philipp 'ph3-der-loewe' Schafft <lion@lion.leolix.org>
6# Copyright (c)      2007 Javier Fernandez-Sanguino <jfs@debian.org>
7#
8# This is free software; you may redistribute it and/or modify
9# it under the terms of the GNU General Public License as
10# published by the Free Software Foundation; either version 3,
11# or (at your option) any later version.
12#
13# This is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License with
19# the Debian operating system, in /usr/share/common-licenses/GPL;  if
20# not, write to the Free Software Foundation, Inc., 59 Temple Place,
21# Suite 330, Boston, MA 02111-1307 USA
22#
23### BEGIN INIT INFO
24# Provides:          roaraudio
25# Required-Start:    $network $local_fs
26# Required-Stop:
27# Should-Start:
28# Should-Stop:
29# Default-Start:     2 3 4 5
30# Default-Stop:      0 1 6
31# Short-Description: sound server for audio mixing
32# Description:       RoarAudio is a server for audio mixing. Its main purpose is to mix audio from
33#                    different clients before sending it to its outputs (for example a soundcard).
34#                    It is completely network transparent (UNIX sockets, TCP/IP, DECnet) and
35#                    supports many common codecs like Ogg Vorbis, Speex or FLAC.
36### END INIT INFO
37
38set -e
39
40PATH=/sbin:/bin:/usr/sbin:/usr/bin
41DAEMON=/usr/bin/roard
42ROARCTL=/usr/bin/roarctl
43NAME=roaraudio
44DESC="RoarAudio"
45
46PIDFILE=/var/run/`basename $DAEMON`.pid
47SCRIPTNAME=/etc/init.d/$NAME
48
49# Gracefully exit if the package has been removed.
50test -x $DAEMON || exit 0;
51
52# Read config file if it is present.
53if [ -r /etc/default/$NAME ]
54then
55    . /etc/default/$NAME
56fi
57
58if [ "$ROARAUDIO_DEFAULT_SOCKET" != '' ]
59then
60 ln -s "$ROARAUDIO_DEFAULT_SOCKET" /etc/roarserver
61fi
62
63[ "$ROARD" = 'YES' ] || exit 0;
64
65ROARD_OPTS="--daemon $ROARD_OPTS"
66
67[ "$PIDFILE"        = ''       ] || ROARD_OPTS="--pidfile $PIDFILE $ROARD_OPTS"
68[ "$ROARD_REALTIME" = 'YES'    ] && ROARD_OPTS="--realtime $ROARD_OPTS"
69[ "$ROARD_REALTIME" = 'DOUBLE' ] && ROARD_OPTS="--realtime --realtime $ROARD_OPTS"
70
71[ "$ROARD_LOCATION" = ''       ] || ROARD_OPTS="--location $ROARD_LOCATION $ROARD_OPTS"
72
73case "$ROARD_AF" in
74  UNIX|unix)
75   ROARD_OPTS="-u $ROARD_OPTS"
76  ;;
77  TCP|tcp)
78   ROARD_OPTS="-t $ROARD_OPTS"
79  ;;
80  DECnet|DECNET|decnet)
81   ROARD_OPTS="-n $ROARD_OPTS"
82  ;;
83esac
84
85ESD_OPTS=''
86
87case "$ROARD_EMUL_ESD_AF" in
88  UNIX|unix)
89   ESD_OPTS="--new-sock --proto esd -u -b /tmp/.esd/socket"
90   mkdir /tmp/.esd/ 2> /dev/null;
91  ;;
92  TCP|tcp)
93   _host='localhost';
94   [ "$ROARD_HOST" = '' ]   || _host="$ROARD_HOST"
95   ESD_OPTS="--new-sock --proto esd -t -b $_host -p 16001"
96  ;;
97esac
98
99[ "$ROARD_SOCKET" = '' ]  || ROARD_OPTS="--sock $ROARD_SOCKET $ROARD_OPTS"
100[ "$ROARD_PORT"   = '' ]  || ROARD_OPTS="--port $ROARD_PORT $ROARD_OPTS"
101
102if [ "$ROARD_OBJECT" = '' ]
103then
104 [ "$ROARD_HOST" = '' ]   || ROARD_OPTS="--bind $ROARD_HOST $ROARD_OPTS"
105else
106 ROARD_OPTS="--sock $ROARD_HOST::$ROARD_OBJECT $ROARD_OPTS"
107fi
108
109[ "$ROARD_SLP"  = 'YES' ] && ROARD_OPTS="--slp $ROARD_OPTS"
110
111[ "$ROARD_RATE"    = '' ] || ROARD_OPTS="-R $ROARD_RATE $ROARD_OPTS"
112[ "$ROARD_CHANNEL" = '' ] || ROARD_OPTS="-C $ROARD_CHANNEL $ROARD_OPTS"
113[ "$ROARD_BITS"    = '' ] || ROARD_OPTS="-B $ROARD_BITS $ROARD_OPTS"
114
115[ "$ROARD_DRIVER" = '' ]  || ROARD_OPTS="-o $ROARD_DRIVER $ROARD_OPTS"
116[ "$ROARD_DEVICE" = '' ]  || ROARD_OPTS="-O $ROARD_DEVICE $ROARD_OPTS"
117[ "$ROARD_DRIVER_OPTIONS" = '' ] && ROARD_DRIVER_OPTIONS='sync'
118ROARD_OPTS="-oP -oO $ROARD_DRIVER_OPTIONS $ROARD_OPTS"
119
120if [ "$ROARD_USER" = '' ]
121then
122 ROARD_OPTS="--setuid -U roard $ROARD_OPTS"
123else
124 ROARD_OPTS="--setuid -U $ROARD_USER $ROARD_OPTS"
125fi
126
127ROARD_OPTS="--setgid $ROARD_OPTS"
128[ "$ROARD_GROUP"  = '' ]  || ROARD_OPTS="-G $ROARD_GROUP $ROARD_OPTS"
129
130[ "$ROARD_CHROOT" = '' ] || ROARD_OPTS="--chroot $ROARD_CHROOT $ROARD_OPTS"
131
132ROARD_OPTS="$ROARD_OPTS $ESD_OPTS"
133
134case "$1" in
135  start)
136        echo -n "Starting $DESC: $NAME"
137        $DAEMON --start $ROARD_OPTS
138        echo "."
139        ;;
140  stop)
141        echo -n "Stopping $DESC: $NAME"
142        $DAEMON --stop $ROARD_OPTS
143        echo "."
144        ;;
145  restart|force-reload)
146        echo -n "Restarting $DESC: $NAME"
147        $DAEMON --restart $ROARD_OPTS
148        echo "."
149        ;;
150  *)
151        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
152        exit 1
153        ;;
154esac
155
156exit 0
Note: See TracBrowser for help on using the repository browser.