--- /dev/null
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: stream-m
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: init-Script for system wide fetchmail daemon
+### END INIT INFO
+
+
+DAEMON=/usr/local/bin/stream-m
+USER=""
+CONF="/etc/stream-m/server.conf"
+LOG=/var/log/stream-m.log
+PIDFILE=/var/run/stream-m.pid
+
+test -f /etc/default/stream-m || exit 0
+. /etc/default/stream-m
+
+STREAMMHOME=/home/$USER
+
+if [ ! "x$START_DAEMON" = "xyes" -a ! "$1" = "stop" ]; then
+ echo "Edit /etc/default/stream-m to start stream-m"
+ exit 0
+fi
+
+test -f $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+case "$1" in
+ start)
+ log_begin_msg "Starting stream-m video server:" "stream-m"
+ echo $DAEMON $CONF ' &' > $STREAMMHOME/.stream-m-init
+ chmod +x $STREAMMHOME/.stream-m-init
+ su -c $STREAMMHOME/.stream-m-init $USER > ${LOG}
+ sleep 2
+ pid=`pgrep -u ${USER} stream-m`
+ if [ pid = '' ]; then
+ log_failure_msg "Stream-m daemon can't be started! Check logfile: ${LOG}"
+ else
+ echo $pid > $PIDFILE
+ fi
+
+ ;;
+ stop)
+ log_begin_msg "Stopping stream-m video server:" "stream-m"
+ pid=`cat $PIDFILE | sed -e 's/\s.*//'|head -n1`
+ if [ ! pid = '' ]; then
+ kill -9 $pid
+ log_end_msg 0
+ else
+ log_end_msg 1
+ exit 1
+ fi
+ rm $PIDFILE
+ ;;
+ try-restart)
+ if test -e $PIDFILE ; then
+ pid=`cat $PIDFILE | sed -e 's/\s.*//'|head -n1`
+ PIDDIR=/proc/$pid
+ if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
+ $0 restart
+ exit 0
+ fi
+ fi
+ test -f /etc/rc`/sbin/runlevel | cut -d' ' -f2`.d/S*stream-m* && $0 start
+ ;;
+
+ *)
+ log_warning_msg "Usage: /etc/init.d/stream-m {start|stop|restart|force-reload|awaken|debug-run}"
+ log_warning_msg " start - starts system-wide stream-m service"
+ log_warning_msg " stop - stops system-wide stream-m service"
+ log_warning_msg " restart, force-reload - starts a new system-wide stream-m service"
+ log_warning_msg " awaken - tell system-wide stream-m to start a poll cycle immediately"
+ log_warning_msg " debug-run [strace [strace options...]] - start a debug run of the"
+ log_warning_msg " system-wide stream-m service, optionally running it under strace"
+ exit 1
+ ;;
+esac
+
+exit 0
--- /dev/null
+#\r
+# Sample configuration file\r
+# Empty lines and lines starting with # and ; are ignored.\r
+# Format: <key> = <value>\r
+# Syntactic elements (words) can be separated by linear whitepace.\r
+#\r
+\r
+# server.port\r
+# listening port\r
+server.port = 8080\r
+\r
+# stream.<streamname>\r
+# if defined then a stream can be started with this name\r
+streams.safe = true\r
+\r
+# stream.<streamname>.password\r
+# determines the password to accept the stream\r
+streams.safe.password = source2parisson\r
+\r
+# stream.<streamname>.limit\r
+# maximum number of clients for this stream\r
+streams.first.limit = 10\r
+\r
self.log_dir = '/var/log/telecaster'
self.deefuzzer_log_dir = '/var/log/deefuzzer'
self.conf_dir = '/etc/telecaster'
+ self.stream_m_conf_dir = '/etc/stream-m'
self.init_dirs = ['/etc/init.d/', '/etc/default/']
- self.daemons = ['jackd', 'vncserver']
+ self.daemons = ['jackd', 'vncserver', 'stream-m']
self.apache_conf = '/etc/apache2/sites-available/telecaster.conf'
def create_user(self):
# Install DeeFuzzer
os.system('pip install deefuzzer')
+ # Install Stream-m
+ os.chdir(self.app_dir)
+ os.system('cp -ra vendor/stream-m /usr/local/lib/')
+ init_link = '/usr/local/bin/stream-m'
+ if not os.path.islink(init_link):
+ os.system('ln -s /usr/local/lib/stream-m/bin/stream-m '+init_link)
+
def install_app(self):
os.chdir(self.app_dir)
def install_conf(self):
os.chdir(self.app_dir)
- in_files = os.listdir('conf'+self.conf_dir)
- if not os.path.exists(self.conf_dir):
- os.makedirs(self.conf_dir)
-
- for file in in_files:
- shutil.copy('conf'+self.conf_dir+os.sep+file, self.conf_dir+os.sep+file)
+ for conf_dir in list(self.conf_dir, self.stream_m_conf_dir):
+ in_files = os.listdir('conf'+conf_dir)
+ if not os.path.exists(conf_dir):
+ os.makedirs(conf_dir)
+ for file in in_files:
+ shutil.copy('conf'+conf_dir+os.sep+file, conf_dir+os.sep+file)
+ self.chown(conf_dir)
for dir in os.listdir('conf/home'):
home_dir = self.home + '/.' + dir
def install_init(self):
os.chdir(self.app_dir)
- dirs = [self.rss_dir, self.m3u_dir, self.log_dir, self.deefuzzer_log_dir, self.conf_dir]
+ dirs = [self.rss_dir, self.m3u_dir, self.log_dir, self.deefuzzer_log_dir, self.conf_dir, self.stream_m_conf_dir]
for dir in dirs:
if not os.path.exists(dir):
os.makedirs(dir)
if not os.path.islink(init_link):
os.system('ln -s /etc/init.d/vncserver '+init_link)
+ init_link = '/etc/rc2.d/S98stream-m'
+ if not os.path.islink(init_link):
+ os.system('ln -s /etc/init.d/stream-m '+init_link)
+
os.system('cp -r conf/usr/* /usr/')
def run(self):
Installation successfull !
Now, please :
- - configure your telecaster editing /etc/telecaster/telecaster.xml and /etc/telecaster/deefuzzer.xml
- - configure your apache VirtualHost editing /etc/apache2/sites-available/telecaster.conf
+ - configure your telecaster editing:
+ /etc/telecaster/telecaster.xml
+ /etc/telecaster/deefuzzer.xml
+
+ - configure your apache VirtualHost editing /etc/apache2/sites-available/telecaster.conf
+
+ - REBOOT to setup audio and video servers !
- And use the TeleCaster system browsing http://127.0.0.1/telecaster/telecaster.py
+ - use the TeleCaster system browsing http://127.0.0.1/telecaster/telecaster.py
- See README for more infos.
+ See README for more infos.
"""