diff --git a/airtime_mvc/build/airtime-setup/load.php b/airtime_mvc/build/airtime-setup/load.php index d1d9964eb..684be3b25 100644 --- a/airtime_mvc/build/airtime-setup/load.php +++ b/airtime_mvc/build/airtime-setup/load.php @@ -124,7 +124,7 @@ function checkRMQConnection() { * @return boolean true if airtime-media-monitor is running */ function checkMediaMonitorService() { - exec("pgrep -fx 'python /usr/lib/airtime/media-monitor/media_monitor.py'", $out, $status); + exec("pgrep -f -u www-data media_monitor", $out, $status); if (array_key_exists(0, $out) && $status == 0) { return posix_kill(rtrim($out[0]), 0); } @@ -137,7 +137,7 @@ function checkMediaMonitorService() { * @return boolean true if airtime-playout is running */ function checkPlayoutService() { - exec("pgrep -fx 'python /usr/lib/airtime/pypo/bin/pypocli.py'", $out, $status); + exec("pgrep -f -u www-data pypo", $out, $status); if (array_key_exists(0, $out) && $status == 0) { return posix_kill(rtrim($out[0]), 0); } @@ -150,7 +150,7 @@ function checkPlayoutService() { * @return boolean true if airtime-liquidsoap is running */ function checkLiquidsoapService() { - exec("pgrep -fx '/usr/bin/airtime-liquidsoap --verbose -f /usr/lib/airtime/pypo/bin/liquidsoap_scripts/ls_script.liq'", $out, $status); + exec("pgrep -f -u www-data airtime-liquidsoap", $out, $status); if (array_key_exists(0, $out) && $status == 0) { return posix_kill(rtrim($out[0]), 0); } diff --git a/install b/install index 69acfbfa1..220d92b5a 100755 --- a/install +++ b/install @@ -252,7 +252,10 @@ if [ -f /etc/airtime/airtime.conf ]; then will be moved to /etc/airtime/airtime.conf.tmp" # If we don't remove the existing python files in /usr/lib and the # /etc/init.d startup scripts, services won't work properly - rm -rf /usr/lib/airtime/ + if [ -d /usr/lib/airtime/ ]; then + rm -rf /usr/lib/airtime/ + fi + rm /etc/init.d/airtime-* if [ "$apache" = "t" ]; then @@ -353,7 +356,7 @@ if [ "$icecast" = "t" ]; then verbose "\n * Enabling Icecast 2..." sed -i 's/ENABLE=false/ENABLE=true/g' /etc/default/icecast2 set +e - service icecast2 start + loudCmd "service icecast2 start" set -e verbose "...Done" fi @@ -367,38 +370,24 @@ loudCmd "apt-get -y --force-yes install liquidsoap python python-pip" loudCmd "pip install setuptools" verbose "...Done" -verbose "\n * Creating /usr/lib/airtime..." -mkdir -p /usr/lib/airtime -verbose "...Done" - verbose "\n * Creating /run/airtime..." mkdir -p /run/airtime chmod 755 /run/airtime chown -R ${web_user}:${web_user} /run/airtime verbose "...Done" -verbose "\n * Copying logging files..." -cp -R ${AIRTIMEROOT}/python_apps/std_err_override /usr/lib/airtime/ +verbose "\n * Installing log writer..." +loudCmd "python ${AIRTIMEROOT}/python_apps/std_err_override/setup.py install" verbose "...Done" -verbose "\n * Copying API client files..." -cp -R ${AIRTIMEROOT}/python_apps/api_clients /usr/lib/airtime/ -verbose "...Done" - -verbose "\n * Copying media-monitor files..." -cp -R ${AIRTIMEROOT}/python_apps/media-monitor/media-monitor /usr/lib/airtime/ -cp -R ${AIRTIMEROOT}/python_apps/media-monitor/media-monitor2 /usr/lib/airtime/media-monitor/mm2 +verbose "\n * Installing API client..." +loudCmd "python ${AIRTIMEROOT}/python_apps/api_clients/setup.py install" verbose "...Done" verbose "\n * Installing media-monitor..." loudCmd "python ${AIRTIMEROOT}/python_apps/media-monitor/setup.py install" verbose "...Done" -verbose "\n * Copying pypo files..." -mkdir -p /usr/lib/airtime/pypo -cp -R ${AIRTIMEROOT}/python_apps/pypo/pypo /usr/lib/airtime/pypo/bin/ -verbose "...Done" - verbose "\n * Installing pypo..." loudCmd "python ${AIRTIMEROOT}/python_apps/pypo/setup.py install" verbose "...Done" @@ -425,7 +414,7 @@ if [ ! -d /var/log/airtime ]; then verbose "\n * Copying logrotate files..." cp ${AIRTIMEROOT}/airtime_mvc/build/airtime-php.logrotate /etc/logrotate.d/airtime-php - cp /usr/lib/airtime/pypo/bin/liquidsoap_scripts/airtime-liquidsoap.logrotate /etc/logrotate.d/airtime-liquidsoap + cp ${AIRTIMEROOT}/python_apps/pypo/pypo/liquidsoap_scripts/airtime-liquidsoap.logrotate /etc/logrotate.d/airtime-liquidsoap fi verbose "\n * Setting permissions on /var/log/airtime..." @@ -434,9 +423,7 @@ chown -R ${web_user}:${web_user} /var/log/airtime/ verbose "\n * Setting permissions on /var/tmp/airtime..." chmod -R a+x /var/tmp/airtime -chmod 755 /usr/lib/airtime/pypo/bin/liquidsoap_scripts/notify.sh chown -R ${web_user}:${web_user} /var/tmp/airtime/ -chown -R ${web_user}:${web_user} /usr/lib/airtime/ loud "\n-----------------------------------------------------" loud " * Installing PHP * " diff --git a/python_apps/api_clients/__init__.py b/python_apps/api_clients/api_clients/__init__.py similarity index 100% rename from python_apps/api_clients/__init__.py rename to python_apps/api_clients/api_clients/__init__.py diff --git a/python_apps/api_clients/api_client.py b/python_apps/api_clients/api_clients/api_client.py similarity index 100% rename from python_apps/api_clients/api_client.py rename to python_apps/api_clients/api_clients/api_client.py diff --git a/python_apps/api_clients/setup.py b/python_apps/api_clients/setup.py new file mode 100644 index 000000000..b71f509a2 --- /dev/null +++ b/python_apps/api_clients/setup.py @@ -0,0 +1,33 @@ +from setuptools import setup +from subprocess import call +import sys +import os + +script_path = os.path.dirname(os.path.realpath(__file__)) +print script_path +os.chdir(script_path) + +setup(name='api_clients', + version='1.0', + description='Airtime API Client', + url='http://github.com/sourcefabric/Airtime', + author='sourcefabric', + license='AGPLv3', + packages=['api_clients'], + scripts=[], + install_requires=[ +# 'amqplib', +# 'anyjson', +# 'argparse', + 'configobj' +# 'docopt', +# 'kombu', +# 'mutagen', +# 'poster', +# 'PyDispatcher', +# 'pyinotify', +# 'pytz', +# 'wsgiref' + ], + zip_safe=False, + data_files=[]) \ No newline at end of file diff --git a/python_apps/media-monitor/bin/airtime-media-monitor b/python_apps/media-monitor/bin/airtime-media-monitor index a76b10d52..25fa771d8 100755 --- a/python_apps/media-monitor/bin/airtime-media-monitor +++ b/python_apps/media-monitor/bin/airtime-media-monitor @@ -2,8 +2,6 @@ exec 2>&1 -cd /usr/lib/airtime/media-monitor/ - set +e cat /etc/default/locale | grep -i "LANG=.*UTF-\?8" set -e @@ -12,8 +10,6 @@ if [ "$?" != "0" ]; then exit 1 fi -export PYTHONPATH=/usr/lib/airtime/:/usr/lib/airtime/media-monitor/airtimefilemonitor/:\ -/usr/lib/airtime/media-monitor/mm2/:/usr/lib/airtime/std_err_override/:/usr/lib/airtime/api_clients:$PYTHONPATH export LC_ALL=`cat /etc/default/locale | grep "LANG=" | cut -d= -f2 | tr -d "\n\""` -exec python /usr/lib/airtime/media-monitor/media_monitor.py > /var/log/airtime/media-monitor/py-interpreter.log 2>&1 +exec python -m media_monitor > /var/log/airtime/media-monitor/py-interpreter.log 2>&1 diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/__init__.py b/python_apps/media-monitor/media_monitor/__init__.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/__init__.py rename to python_apps/media-monitor/media_monitor/__init__.py diff --git a/python_apps/media-monitor/media-monitor/media_monitor.py b/python_apps/media-monitor/media_monitor/__main__.py similarity index 69% rename from python_apps/media-monitor/media-monitor/media_monitor.py rename to python_apps/media-monitor/media_monitor/__main__.py index aabc2e6f5..e98365cc6 100644 --- a/python_apps/media-monitor/media-monitor/media_monitor.py +++ b/python_apps/media-monitor/media_monitor/__main__.py @@ -1,10 +1,11 @@ import logging import time import sys +import os import mm2.mm2 as mm2 from std_err_override import LogWriter global_cfg = '/etc/airtime/airtime.conf' -logging_cfg = '/usr/lib/airtime/media-monitor/logging.cfg' +logging_cfg = os.path.join(os.path.dirname(__file__), 'logging.cfg') mm2.main( global_cfg, logging_cfg ) diff --git a/python_apps/media-monitor/media-monitor/airtime-media-monitor-init-d b/python_apps/media-monitor/media_monitor/airtime-media-monitor-init-d similarity index 100% rename from python_apps/media-monitor/media-monitor/airtime-media-monitor-init-d rename to python_apps/media-monitor/media_monitor/airtime-media-monitor-init-d diff --git a/python_apps/media-monitor/media-monitor2/media/__init__.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/__init__.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/media/__init__.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/__init__.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimemetadata.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimemetadata.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimemetadata.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimemetadata.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimenotifier.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimenotifier.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimenotifier.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimenotifier.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimeprocessevent.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimeprocessevent.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/airtimeprocessevent.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/airtimeprocessevent.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/mediaconfig.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/mediaconfig.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/mediaconfig.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/mediaconfig.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/mediamonitorcommon.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/mediamonitorcommon.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/mediamonitorcommon.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/mediamonitorcommon.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/replaygain.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/replaygain.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/replaygain.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/replaygain.py diff --git a/python_apps/media-monitor/media-monitor/airtimefilemonitor/workerprocess.py b/python_apps/media-monitor/media_monitor/airtimefilemonitor/workerprocess.py similarity index 100% rename from python_apps/media-monitor/media-monitor/airtimefilemonitor/workerprocess.py rename to python_apps/media-monitor/media_monitor/airtimefilemonitor/workerprocess.py diff --git a/python_apps/media-monitor/media-monitor/logging.cfg b/python_apps/media-monitor/media_monitor/logging.cfg similarity index 100% rename from python_apps/media-monitor/media-monitor/logging.cfg rename to python_apps/media-monitor/media_monitor/logging.cfg diff --git a/python_apps/media-monitor/media-monitor/mm1.py b/python_apps/media-monitor/media_monitor/mm1.py similarity index 100% rename from python_apps/media-monitor/media-monitor/mm1.py rename to python_apps/media-monitor/media_monitor/mm1.py diff --git a/python_apps/media-monitor/media-monitor2/__init__.py b/python_apps/media-monitor/mm2/__init__.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/__init__.py rename to python_apps/media-monitor/mm2/__init__.py diff --git a/python_apps/media-monitor/media-monitor2/baby.py b/python_apps/media-monitor/mm2/baby.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/baby.py rename to python_apps/media-monitor/mm2/baby.py diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/__init__.py b/python_apps/media-monitor/mm2/configs/__init__.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/media/monitor/__init__.py rename to python_apps/media-monitor/mm2/configs/__init__.py diff --git a/python_apps/media-monitor/media-monitor2/configs/logging.cfg b/python_apps/media-monitor/mm2/configs/logging.cfg similarity index 100% rename from python_apps/media-monitor/media-monitor2/configs/logging.cfg rename to python_apps/media-monitor/mm2/configs/logging.cfg diff --git a/python_apps/media-monitor/media-monitor2/media/saas/__init__.py b/python_apps/media-monitor/mm2/media/__init__.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/media/saas/__init__.py rename to python_apps/media-monitor/mm2/media/__init__.py diff --git a/python_apps/media-monitor/media-monitor2/media/metadata/__init__.py b/python_apps/media-monitor/mm2/media/metadata/__init__.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/media/metadata/__init__.py rename to python_apps/media-monitor/mm2/media/metadata/__init__.py diff --git a/python_apps/media-monitor/media-monitor2/media/metadata/definitions.py b/python_apps/media-monitor/mm2/media/metadata/definitions.py similarity index 97% rename from python_apps/media-monitor/media-monitor2/media/metadata/definitions.py rename to python_apps/media-monitor/mm2/media/metadata/definitions.py index 621449dd6..883a20acb 100644 --- a/python_apps/media-monitor/media-monitor2/media/metadata/definitions.py +++ b/python_apps/media-monitor/mm2/media/metadata/definitions.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -import media.metadata.process as md +import process as md import re from os.path import normpath -from media.monitor.pure import format_length, file_md5, is_airtime_recorded, \ +from ..monitor.pure import format_length, file_md5, is_airtime_recorded, \ no_extension_basename defs_loaded = False diff --git a/python_apps/media-monitor/media-monitor2/media/metadata/process.py b/python_apps/media-monitor/mm2/media/metadata/process.py similarity index 95% rename from python_apps/media-monitor/media-monitor2/media/metadata/process.py rename to python_apps/media-monitor/mm2/media/metadata/process.py index be6b81e20..178681cd8 100644 --- a/python_apps/media-monitor/media-monitor2/media/metadata/process.py +++ b/python_apps/media-monitor/mm2/media/metadata/process.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- -from contextlib import contextmanager -from media.monitor.pure import truncate_to_value, truncate_to_length, toposort -from os.path import normpath -from media.monitor.exceptions import BadSongFile -from media.monitor.log import Loggable -import media.monitor.pure as mmp -from collections import namedtuple +from contextlib import contextmanager +from ..monitor.pure import truncate_to_value, truncate_to_length, toposort +from os.path import normpath +from ..monitor.exceptions import BadSongFile +from ..monitor.log import Loggable +from ..monitor import pure as mmp +from collections import namedtuple import mutagen import subprocess import json diff --git a/python_apps/std_err_override/__init__.py b/python_apps/media-monitor/mm2/media/monitor/__init__.py similarity index 100% rename from python_apps/std_err_override/__init__.py rename to python_apps/media-monitor/mm2/media/monitor/__init__.py diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/airtime.py b/python_apps/media-monitor/mm2/media/monitor/airtime.py similarity index 94% rename from python_apps/media-monitor/media-monitor2/media/monitor/airtime.py rename to python_apps/media-monitor/mm2/media/monitor/airtime.py index e9244857e..ce0e581d9 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/airtime.py +++ b/python_apps/media-monitor/mm2/media/monitor/airtime.py @@ -1,22 +1,21 @@ # -*- coding: utf-8 -*- -from kombu.messaging import Exchange, Queue, Consumer -from kombu.connection import BrokerConnection -from kombu.simple import SimpleQueue -from os.path import normpath +from kombu.messaging import Exchange, Queue, Consumer +from kombu.connection import BrokerConnection +from kombu.simple import SimpleQueue +from os.path import normpath import json import os import copy import time -from media.monitor.exceptions import BadSongFile, InvalidMetadataElement -from media.monitor.metadata import Metadata -from media.monitor.log import Loggable -from media.monitor.syncdb import AirtimeDB -from media.monitor.exceptions import DirectoryIsNotListed -from media.monitor.bootstrap import Bootstrapper +from exceptions import BadSongFile, InvalidMetadataElement, DirectoryIsNotListed +from metadata import Metadata +from log import Loggable +from syncdb import AirtimeDB +from bootstrap import Bootstrapper -from media.saas.thread import apc, user +from ..saas.thread import apc, user class AirtimeNotifier(Loggable): """ diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/bootstrap.py b/python_apps/media-monitor/mm2/media/monitor/bootstrap.py similarity index 92% rename from python_apps/media-monitor/media-monitor2/media/monitor/bootstrap.py rename to python_apps/media-monitor/mm2/media/monitor/bootstrap.py index 6e685c964..4ae6d0140 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/bootstrap.py +++ b/python_apps/media-monitor/mm2/media/monitor/bootstrap.py @@ -1,9 +1,9 @@ import os -from pydispatch import dispatcher -from media.monitor.events import NewFile, DeleteFile, ModifyFile -from media.monitor.log import Loggable -from media.saas.thread import getsig -import media.monitor.pure as mmp +from pydispatch import dispatcher +from events import NewFile, DeleteFile, ModifyFile +from log import Loggable +from ..saas.thread import getsig +import pure as mmp class Bootstrapper(Loggable): """ diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/config.py b/python_apps/media-monitor/mm2/media/monitor/config.py similarity index 90% rename from python_apps/media-monitor/media-monitor2/media/monitor/config.py rename to python_apps/media-monitor/mm2/media/monitor/config.py index 064caa158..4e6f955df 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/config.py +++ b/python_apps/media-monitor/mm2/media/monitor/config.py @@ -3,8 +3,8 @@ import os import copy from configobj import ConfigObj -from media.monitor.exceptions import NoConfigFile, ConfigAccessViolation -import media.monitor.pure as mmp +from exceptions import NoConfigFile, ConfigAccessViolation +import pure as mmp class MMConfig(object): def __init__(self, path): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/eventcontractor.py b/python_apps/media-monitor/mm2/media/monitor/eventcontractor.py similarity index 93% rename from python_apps/media-monitor/media-monitor2/media/monitor/eventcontractor.py rename to python_apps/media-monitor/mm2/media/monitor/eventcontractor.py index f832f6c62..bd0bd295d 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/eventcontractor.py +++ b/python_apps/media-monitor/mm2/media/monitor/eventcontractor.py @@ -1,5 +1,5 @@ -from media.monitor.log import Loggable -from media.monitor.events import DeleteFile +from log import Loggable +from events import DeleteFile class EventContractor(Loggable): def __init__(self): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/eventdrainer.py b/python_apps/media-monitor/mm2/media/monitor/eventdrainer.py similarity index 91% rename from python_apps/media-monitor/media-monitor2/media/monitor/eventdrainer.py rename to python_apps/media-monitor/mm2/media/monitor/eventdrainer.py index b551fae8e..85eb0d673 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/eventdrainer.py +++ b/python_apps/media-monitor/mm2/media/monitor/eventdrainer.py @@ -1,7 +1,7 @@ import socket import time -from media.monitor.log import Loggable -from media.monitor.toucher import RepeatTimer +from log import Loggable +from toucher import RepeatTimer from amqplib.client_0_8.exceptions import AMQPConnectionException class EventDrainer(Loggable): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/events.py b/python_apps/media-monitor/mm2/media/monitor/events.py similarity index 97% rename from python_apps/media-monitor/media-monitor2/media/monitor/events.py rename to python_apps/media-monitor/mm2/media/monitor/events.py index 4389bf27e..52f0662d0 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/events.py +++ b/python_apps/media-monitor/mm2/media/monitor/events.py @@ -2,12 +2,12 @@ import os import abc import re -import media.monitor.pure as mmp -from media.monitor.pure import LazyProperty -from media.monitor.metadata import Metadata -from media.monitor.log import Loggable -from media.monitor.exceptions import BadSongFile -from media.saas.thread import getsig, user +import pure as mmp +from pure import LazyProperty +from metadata import Metadata +from log import Loggable +from exceptions import BadSongFile +from ..saas.thread import getsig, user class PathChannel(object): """ Simple struct to hold a 'signal' string and a related 'path'. diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/exceptions.py b/python_apps/media-monitor/mm2/media/monitor/exceptions.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/media/monitor/exceptions.py rename to python_apps/media-monitor/mm2/media/monitor/exceptions.py diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/handler.py b/python_apps/media-monitor/mm2/media/monitor/handler.py similarity index 95% rename from python_apps/media-monitor/media-monitor2/media/monitor/handler.py rename to python_apps/media-monitor/mm2/media/monitor/handler.py index c67a437ef..7e00bfde9 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/handler.py +++ b/python_apps/media-monitor/mm2/media/monitor/handler.py @@ -2,9 +2,9 @@ from pydispatch import dispatcher import abc -from media.monitor.log import Loggable -from media.saas.thread import getsig -import media.monitor.pure as mmp +from log import Loggable +from ..saas.thread import getsig +import pure as mmp # Defines the handle interface class Handles(object): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/listeners.py b/python_apps/media-monitor/mm2/media/monitor/listeners.py similarity index 95% rename from python_apps/media-monitor/media-monitor2/media/monitor/listeners.py rename to python_apps/media-monitor/mm2/media/monitor/listeners.py index 86b74bcea..0437a7964 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/listeners.py +++ b/python_apps/media-monitor/mm2/media/monitor/listeners.py @@ -3,13 +3,13 @@ import pyinotify from pydispatch import dispatcher from functools import wraps -import media.monitor.pure as mmp -from media.monitor.pure import IncludeOnly -from media.monitor.events import OrganizeFile, NewFile, MoveFile, DeleteFile, \ +import pure as mmp +from pure import IncludeOnly +from events import OrganizeFile, NewFile, MoveFile, DeleteFile, \ DeleteDir, MoveDir,\ DeleteDirWatch -from media.monitor.log import Loggable -from media.saas.thread import getsig, user +from log import Loggable +from ..saas.thread import getsig, user # Note: Because of the way classes that inherit from pyinotify.ProcessEvent # interact with constructors. you should only instantiate objects from them # using keyword arguments. For example: diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/log.py b/python_apps/media-monitor/mm2/media/monitor/log.py similarity index 96% rename from python_apps/media-monitor/media-monitor2/media/monitor/log.py rename to python_apps/media-monitor/mm2/media/monitor/log.py index 7e75c719d..ec9523d7f 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/log.py +++ b/python_apps/media-monitor/mm2/media/monitor/log.py @@ -1,7 +1,7 @@ import logging import abc import traceback -from media.monitor.pure import LazyProperty +from pure import LazyProperty appname = 'root' diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/manager.py b/python_apps/media-monitor/mm2/media/monitor/manager.py similarity index 95% rename from python_apps/media-monitor/media-monitor2/media/monitor/manager.py rename to python_apps/media-monitor/mm2/media/monitor/manager.py index 6617ae416..c457b39b7 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/manager.py +++ b/python_apps/media-monitor/mm2/media/monitor/manager.py @@ -1,16 +1,16 @@ import pyinotify import time import os -from pydispatch import dispatcher +from pydispatch import dispatcher -from os.path import normpath -from media.monitor.events import PathChannel -from media.monitor.log import Loggable -from media.monitor.listeners import StoreWatchListener, OrganizeListener -from media.monitor.handler import ProblemFileHandler -from media.monitor.organizer import Organizer -from media.saas.thread import InstanceInheritingThread, getsig -import media.monitor.pure as mmp +from os.path import normpath +from events import PathChannel +from log import Loggable +from listeners import StoreWatchListener, OrganizeListener +from handler import ProblemFileHandler +from organizer import Organizer +from ..saas.thread import InstanceInheritingThread, getsig +import pure as mmp class ManagerTimeout(InstanceInheritingThread,Loggable): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/metadata.py b/python_apps/media-monitor/mm2/media/monitor/metadata.py similarity index 93% rename from python_apps/media-monitor/media-monitor2/media/monitor/metadata.py rename to python_apps/media-monitor/mm2/media/monitor/metadata.py index de70b0a99..2c0988257 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/metadata.py +++ b/python_apps/media-monitor/mm2/media/monitor/metadata.py @@ -2,17 +2,17 @@ import mutagen import os import copy -from mutagen.easymp4 import EasyMP4KeyError -from mutagen.easyid3 import EasyID3KeyError +from mutagen.easymp4 import EasyMP4KeyError +from mutagen.easyid3 import EasyID3KeyError -from media.monitor.exceptions import BadSongFile, InvalidMetadataElement -from media.monitor.log import Loggable -from media.monitor.pure import format_length -import media.monitor.pure as mmp +from exceptions import BadSongFile, InvalidMetadataElement +from log import Loggable +from pure import format_length +import pure as mmp # emf related stuff -from media.metadata.process import global_reader -import media.metadata.definitions as defs +from ..metadata.process import global_reader +from ..metadata import definitions as defs defs.load_definitions() """ diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/organizer.py b/python_apps/media-monitor/mm2/media/monitor/organizer.py similarity index 90% rename from python_apps/media-monitor/media-monitor2/media/monitor/organizer.py rename to python_apps/media-monitor/mm2/media/monitor/organizer.py index 2407889f5..c4550bdfb 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/organizer.py +++ b/python_apps/media-monitor/mm2/media/monitor/organizer.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -import media.monitor.pure as mmp -from media.monitor.handler import ReportHandler -from media.monitor.log import Loggable -from media.monitor.exceptions import BadSongFile -from media.monitor.events import OrganizeFile -from pydispatch import dispatcher -from os.path import dirname -from media.saas.thread import getsig, user +import pure as mmp +from handler import ReportHandler +from log import Loggable +from exceptions import BadSongFile +from events import OrganizeFile +from pydispatch import dispatcher +from os.path import dirname +from ..saas.thread import getsig, user import os.path class Organizer(ReportHandler,Loggable): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/owners.py b/python_apps/media-monitor/mm2/media/monitor/owners.py similarity index 97% rename from python_apps/media-monitor/media-monitor2/media/monitor/owners.py rename to python_apps/media-monitor/mm2/media/monitor/owners.py index 48898c9aa..5fc3ad831 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/owners.py +++ b/python_apps/media-monitor/mm2/media/monitor/owners.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from media.monitor.log import Loggable +from log import Loggable class Owner(Loggable): def __init__(self): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/pure.py b/python_apps/media-monitor/mm2/media/monitor/pure.py similarity index 99% rename from python_apps/media-monitor/media-monitor2/media/monitor/pure.py rename to python_apps/media-monitor/mm2/media/monitor/pure.py index 61ecaebeb..fc6692ba8 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/pure.py +++ b/python_apps/media-monitor/mm2/media/monitor/pure.py @@ -21,7 +21,7 @@ try: from functools import reduce except: pass from configobj import ConfigObj -from media.monitor.exceptions import FailedToSetLocale, FailedToCreateDir +from exceptions import FailedToSetLocale, FailedToCreateDir supported_extensions = [u"mp3", u"ogg", u"oga", u"flac", u"wav", u'm4a', u'mp4', 'opus'] diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/request.py b/python_apps/media-monitor/mm2/media/monitor/request.py similarity index 93% rename from python_apps/media-monitor/media-monitor2/media/monitor/request.py rename to python_apps/media-monitor/mm2/media/monitor/request.py index e2c5fb5ef..71c0c1b54 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/request.py +++ b/python_apps/media-monitor/mm2/media/monitor/request.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from media.monitor.exceptions import BadSongFile -from media.monitor.log import Loggable -from media.saas.thread import apc, InstanceInheritingThread +from exceptions import BadSongFile +from log import Loggable +from ..saas.thread import apc, InstanceInheritingThread class ThreadedRequestSync(InstanceInheritingThread, Loggable): def __init__(self, rs): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/syncdb.py b/python_apps/media-monitor/mm2/media/monitor/syncdb.py similarity index 94% rename from python_apps/media-monitor/media-monitor2/media/monitor/syncdb.py rename to python_apps/media-monitor/mm2/media/monitor/syncdb.py index dd837b2a1..047e13b78 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/syncdb.py +++ b/python_apps/media-monitor/mm2/media/monitor/syncdb.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- import os -from media.monitor.log import Loggable -from media.monitor.exceptions import NoDirectoryInAirtime -from media.saas.thread import user -from os.path import normpath, join -import media.monitor.pure as mmp +from log import Loggable +from exceptions import NoDirectoryInAirtime +from ..saas.thread import user +from os.path import normpath, join +import pure as mmp class AirtimeDB(Loggable): def __init__(self, apc, reload_now=True): diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/toucher.py b/python_apps/media-monitor/mm2/media/monitor/toucher.py similarity index 87% rename from python_apps/media-monitor/media-monitor2/media/monitor/toucher.py rename to python_apps/media-monitor/mm2/media/monitor/toucher.py index d94fd34f8..eb7a9df76 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/toucher.py +++ b/python_apps/media-monitor/mm2/media/monitor/toucher.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- -import media.monitor.pure as mmp +import pure as mmp import os -from media.monitor.log import Loggable -from media.monitor.exceptions import CouldNotCreateIndexFile -from media.saas.thread import InstanceInheritingThread +from log import Loggable +from exceptions import CouldNotCreateIndexFile +from ..saas.thread import InstanceInheritingThread class Toucher(Loggable): """ diff --git a/python_apps/media-monitor/media-monitor2/media/monitor/watchersyncer.py b/python_apps/media-monitor/mm2/media/monitor/watchersyncer.py similarity index 93% rename from python_apps/media-monitor/media-monitor2/media/monitor/watchersyncer.py rename to python_apps/media-monitor/mm2/media/monitor/watchersyncer.py index 558759c89..dde859c05 100644 --- a/python_apps/media-monitor/media-monitor2/media/monitor/watchersyncer.py +++ b/python_apps/media-monitor/mm2/media/monitor/watchersyncer.py @@ -2,13 +2,13 @@ import time import copy -from media.monitor.handler import ReportHandler -from media.monitor.log import Loggable -from media.monitor.exceptions import BadSongFile -from media.monitor.eventcontractor import EventContractor -from media.monitor.events import EventProxy -from media.monitor.request import ThreadedRequestSync, RequestSync -from media.saas.thread import InstanceInheritingThread, getsig +from handler import ReportHandler +from log import Loggable +from exceptions import BadSongFile +from eventcontractor import EventContractor +from events import EventProxy +from request import ThreadedRequestSync, RequestSync +from ..saas.thread import InstanceInheritingThread, getsig class TimeoutWatcher(InstanceInheritingThread,Loggable): """ diff --git a/python_apps/media-monitor/mm2/media/saas/__init__.py b/python_apps/media-monitor/mm2/media/saas/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python_apps/media-monitor/media-monitor2/media/saas/airtimeinstance.py b/python_apps/media-monitor/mm2/media/saas/airtimeinstance.py similarity index 89% rename from python_apps/media-monitor/media-monitor2/media/saas/airtimeinstance.py rename to python_apps/media-monitor/mm2/media/saas/airtimeinstance.py index b661eb152..4eeb8094e 100644 --- a/python_apps/media-monitor/media-monitor2/media/saas/airtimeinstance.py +++ b/python_apps/media-monitor/mm2/media/saas/airtimeinstance.py @@ -1,12 +1,12 @@ import os from os.path import join, basename, dirname -from media.monitor.exceptions import NoConfigFile -from media.monitor.pure import LazyProperty -from media.monitor.config import MMConfig -from media.monitor.owners import Owner -from media.monitor.events import EventRegistry -from media.monitor.listeners import FileMediator +from ..monitor.exceptions import NoConfigFile +from ..monitor.pure import LazyProperty +from ..monitor.config import MMConfig +from ..monitor.owners import Owner +from ..monitor.events import EventRegistry +from ..monitor.listeners import FileMediator from api_clients.api_client import AirtimeApiClient # poor man's phantom types... diff --git a/python_apps/media-monitor/media-monitor2/media/saas/launcher.py b/python_apps/media-monitor/mm2/media/saas/launcher.py similarity index 85% rename from python_apps/media-monitor/media-monitor2/media/saas/launcher.py rename to python_apps/media-monitor/mm2/media/saas/launcher.py index 496addcb4..a2bd95d5c 100644 --- a/python_apps/media-monitor/media-monitor2/media/saas/launcher.py +++ b/python_apps/media-monitor/mm2/media/saas/launcher.py @@ -2,21 +2,21 @@ import os, sys import logging import logging.config -import media.monitor.pure as mmp +from ..monitor import pure as mmp -from media.monitor.exceptions import FailedToObtainLocale, FailedToSetLocale -from media.monitor.log import get_logger, setup_logging +from ..monitor.exceptions import FailedToObtainLocale, FailedToSetLocale +from ..monitor.log import get_logger, setup_logging from std_err_override import LogWriter -from media.saas.thread import InstanceThread, user, apc, getsig -from media.monitor.log import Loggable -from media.monitor.exceptions import CouldNotCreateIndexFile -from media.monitor.toucher import ToucherThread -from media.monitor.airtime import AirtimeNotifier, AirtimeMessageReceiver -from media.monitor.watchersyncer import WatchSyncer -from media.monitor.eventdrainer import EventDrainer -from media.monitor.manager import Manager -from media.monitor.syncdb import AirtimeDB -from media.saas.airtimeinstance import AirtimeInstance +from ..saas.thread import InstanceThread, user, apc, getsig +from ..monitor.log import Loggable +from ..monitor.exceptions import CouldNotCreateIndexFile +from ..monitor.toucher import ToucherThread +from ..monitor.airtime import AirtimeNotifier, AirtimeMessageReceiver +from ..monitor.watchersyncer import WatchSyncer +from ..monitor.eventdrainer import EventDrainer +from ..monitor.manager import Manager +from ..monitor.syncdb import AirtimeDB +from airtimeinstance import AirtimeInstance class MM2(InstanceThread, Loggable): diff --git a/python_apps/media-monitor/media-monitor2/media/saas/thread.py b/python_apps/media-monitor/mm2/media/saas/thread.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/media/saas/thread.py rename to python_apps/media-monitor/mm2/media/saas/thread.py diff --git a/python_apps/media-monitor/media-monitor2/mm2.py b/python_apps/media-monitor/mm2/mm2.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/mm2.py rename to python_apps/media-monitor/mm2/mm2.py diff --git a/python_apps/media-monitor/media-monitor2/pyitest.py b/python_apps/media-monitor/mm2/pyitest.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/pyitest.py rename to python_apps/media-monitor/mm2/pyitest.py diff --git a/python_apps/media-monitor/media-monitor2/tests/__init__.py b/python_apps/media-monitor/mm2/tests/__init__.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/__init__.py rename to python_apps/media-monitor/mm2/tests/__init__.py diff --git a/python_apps/media-monitor/media-monitor2/tests/api_client.cfg b/python_apps/media-monitor/mm2/tests/api_client.cfg similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/api_client.cfg rename to python_apps/media-monitor/mm2/tests/api_client.cfg diff --git a/python_apps/media-monitor/media-monitor2/tests/live_client.cfg b/python_apps/media-monitor/mm2/tests/live_client.cfg similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/live_client.cfg rename to python_apps/media-monitor/mm2/tests/live_client.cfg diff --git a/python_apps/media-monitor/media-monitor2/tests/prepare_tests.py b/python_apps/media-monitor/mm2/tests/prepare_tests.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/prepare_tests.py rename to python_apps/media-monitor/mm2/tests/prepare_tests.py diff --git a/python_apps/media-monitor/media-monitor2/tests/run_tests.pl b/python_apps/media-monitor/mm2/tests/run_tests.pl similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/run_tests.pl rename to python_apps/media-monitor/mm2/tests/run_tests.pl diff --git a/python_apps/media-monitor/media-monitor2/tests/test_api_client.py b/python_apps/media-monitor/mm2/tests/test_api_client.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_api_client.py rename to python_apps/media-monitor/mm2/tests/test_api_client.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_config.cfg b/python_apps/media-monitor/mm2/tests/test_config.cfg similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_config.cfg rename to python_apps/media-monitor/mm2/tests/test_config.cfg diff --git a/python_apps/media-monitor/media-monitor2/tests/test_config.py b/python_apps/media-monitor/mm2/tests/test_config.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_config.py rename to python_apps/media-monitor/mm2/tests/test_config.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_emf.py b/python_apps/media-monitor/mm2/tests/test_emf.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_emf.py rename to python_apps/media-monitor/mm2/tests/test_emf.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_eventcontractor.py b/python_apps/media-monitor/mm2/tests/test_eventcontractor.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_eventcontractor.py rename to python_apps/media-monitor/mm2/tests/test_eventcontractor.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_instance.py b/python_apps/media-monitor/mm2/tests/test_instance.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_instance.py rename to python_apps/media-monitor/mm2/tests/test_instance.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_listeners.py b/python_apps/media-monitor/mm2/tests/test_listeners.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_listeners.py rename to python_apps/media-monitor/mm2/tests/test_listeners.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_manager.py b/python_apps/media-monitor/mm2/tests/test_manager.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_manager.py rename to python_apps/media-monitor/mm2/tests/test_manager.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_metadata.py b/python_apps/media-monitor/mm2/tests/test_metadata.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_metadata.py rename to python_apps/media-monitor/mm2/tests/test_metadata.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_metadata_def.py b/python_apps/media-monitor/mm2/tests/test_metadata_def.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_metadata_def.py rename to python_apps/media-monitor/mm2/tests/test_metadata_def.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_notifier.py b/python_apps/media-monitor/mm2/tests/test_notifier.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_notifier.py rename to python_apps/media-monitor/mm2/tests/test_notifier.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_owners.py b/python_apps/media-monitor/mm2/tests/test_owners.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_owners.py rename to python_apps/media-monitor/mm2/tests/test_owners.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_pure.py b/python_apps/media-monitor/mm2/tests/test_pure.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_pure.py rename to python_apps/media-monitor/mm2/tests/test_pure.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_requestsync.py b/python_apps/media-monitor/mm2/tests/test_requestsync.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_requestsync.py rename to python_apps/media-monitor/mm2/tests/test_requestsync.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_syncdb.py b/python_apps/media-monitor/mm2/tests/test_syncdb.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_syncdb.py rename to python_apps/media-monitor/mm2/tests/test_syncdb.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_thread.py b/python_apps/media-monitor/mm2/tests/test_thread.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_thread.py rename to python_apps/media-monitor/mm2/tests/test_thread.py diff --git a/python_apps/media-monitor/media-monitor2/tests/test_toucher.py b/python_apps/media-monitor/mm2/tests/test_toucher.py similarity index 100% rename from python_apps/media-monitor/media-monitor2/tests/test_toucher.py rename to python_apps/media-monitor/mm2/tests/test_toucher.py diff --git a/python_apps/media-monitor/setup.py b/python_apps/media-monitor/setup.py index a39b1958a..4fac8644f 100644 --- a/python_apps/media-monitor/setup.py +++ b/python_apps/media-monitor/setup.py @@ -34,7 +34,11 @@ setup(name='airtime-media-monitor', url='http://github.com/sourcefabric/Airtime', author='sourcefabric', license='AGPLv3', - packages=['media-monitor', 'media-monitor2'], + packages=['media_monitor', 'mm2', 'mm2.configs', + 'mm2.media', 'mm2.media.monitor', + 'mm2.media.metadata', 'mm2.media.saas' + ], + package_data={'': ['*.cfg']}, scripts=['bin/airtime-media-monitor'], install_requires=[ 'amqplib', diff --git a/python_apps/pypo/bin/airtime-liquidsoap b/python_apps/pypo/bin/airtime-liquidsoap index 18e59d896..83322775d 100755 --- a/python_apps/pypo/bin/airtime-liquidsoap +++ b/python_apps/pypo/bin/airtime-liquidsoap @@ -1,38 +1,3 @@ #!/bin/bash -e -debug="f" - -showhelp () { - echo "Usage: airtime-liquidsoap [options] ---help|-h Displays usage information. ---debug|-d Print error messages to console" -} - -set -- $(getopt -l help,debug "hd" "$@") -while [ $# -gt 0 ] -do - case "$1" in - (-h|--help) showhelp; exit 0;; - (-d|--debug) debug="t";; - - (--) shift; break;; - (-*) echo "$0: error - unrecognized option $1" 1>&2; exit 1;; - (*) break;; - esac - shift -done - -export HOME="/var/tmp/airtime/pypo/" -if [ "$debug" = "t" ]; then - ls_path="/usr/bin/airtime-liquidsoap --verbose -f --debug" -else - ls_path="/usr/bin/airtime-liquidsoap --verbose -f" -fi - -export PYTHONPATH=/usr/lib/airtime/:/usr/lib/airtime/pypo/bin/:/usr/lib/airtime/std_err_override/:/usr/lib/airtime/api_clients:$PYTHONPATH -ls_param="/usr/lib/airtime/pypo/bin/liquidsoap_scripts/ls_script.liq" - -cd /usr/lib/airtime/pypo/bin/liquidsoap_scripts -python generate_liquidsoap_cfg.py - -exec ${ls_path} ${ls_param} 2>&1 +exec python -m liquidsoap 2>&1 diff --git a/python_apps/pypo/bin/airtime-playout b/python_apps/pypo/bin/airtime-playout index 4326e45dc..4cc3d6c35 100755 --- a/python_apps/pypo/bin/airtime-playout +++ b/python_apps/pypo/bin/airtime-playout @@ -9,8 +9,7 @@ if [ "$?" != "0" ]; then fi export HOME="/var/tmp/airtime/pypo/" -export PYTHONPATH=/usr/lib/airtime/:/usr/lib/airtime/pypo/bin/:/usr/lib/airtime/std_err_override/:/usr/lib/airtime/api_clients:$PYTHONPATH export LC_ALL=`cat /etc/default/locale | grep "LANG=" | cut -d= -f2 | tr -d "\n\""` export TERM=xterm -exec python /usr/lib/airtime/pypo/bin/pypocli.py > /var/log/airtime/pypo/py-interpreter.log 2>&1 +exec python -m pypo > /var/log/airtime/pypo/py-interpreter.log 2>&1 diff --git a/python_apps/pypo/pypo/pyponotify.py b/python_apps/pypo/bin/pyponotify similarity index 99% rename from python_apps/pypo/pypo/pyponotify.py rename to python_apps/pypo/bin/pyponotify index 32d56270d..fcbaf04bf 100644 --- a/python_apps/pypo/pypo/pyponotify.py +++ b/python_apps/pypo/bin/pyponotify @@ -1,3 +1,4 @@ +#!/usr/bin/env python # -*- coding: utf-8 -*- import traceback diff --git a/python_apps/pypo/liquidsoap/__init__.py b/python_apps/pypo/liquidsoap/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python_apps/pypo/liquidsoap/__main__.py b/python_apps/pypo/liquidsoap/__main__.py new file mode 100644 index 000000000..55f6cd724 --- /dev/null +++ b/python_apps/pypo/liquidsoap/__main__.py @@ -0,0 +1,27 @@ +""" Runs Airtime liquidsoap +""" + +import argparse +import os +import generate_liquidsoap_cfg + +PYPO_HOME = '/var/tmp/airtime/pypo/' + +def run(): + '''Entry-point for this application''' + print "Airtime Liquidsoap" + parser = argparse.ArgumentParser() + parser.add_argument("-d", "--debug", help="run in debug mode", action="store_true") + args = parser.parse_args() + + os.environ["HOME"] = PYPO_HOME + + generate_liquidsoap_cfg.run() + script_path = os.path.join(os.path.dirname(__file__), 'ls_script.liq') + + if args.debug: + os.execl('/usr/bin/liquidsoap', 'airtime-liquidsoap', script_path, '--verbose', '-f', '--debug') + else: + os.execl('/usr/bin/liquidsoap', 'airtime-liquidsoap', script_path, '--verbose', '-f') + +run() \ No newline at end of file diff --git a/python_apps/pypo/pypo/liquidsoap_scripts/aac.liq b/python_apps/pypo/liquidsoap/aac.liq similarity index 100% rename from python_apps/pypo/pypo/liquidsoap_scripts/aac.liq rename to python_apps/pypo/liquidsoap/aac.liq diff --git a/python_apps/pypo/pypo/liquidsoap_scripts/aacplus.liq b/python_apps/pypo/liquidsoap/aacplus.liq similarity index 100% rename from python_apps/pypo/pypo/liquidsoap_scripts/aacplus.liq rename to python_apps/pypo/liquidsoap/aacplus.liq diff --git a/python_apps/pypo/pypo/liquidsoap_scripts/airtime-liquidsoap.logrotate b/python_apps/pypo/liquidsoap/airtime-liquidsoap.logrotate similarity index 100% rename from python_apps/pypo/pypo/liquidsoap_scripts/airtime-liquidsoap.logrotate rename to python_apps/pypo/liquidsoap/airtime-liquidsoap.logrotate diff --git a/python_apps/pypo/pypo/liquidsoap_scripts/fdkaac.liq b/python_apps/pypo/liquidsoap/fdkaac.liq similarity index 100% rename from python_apps/pypo/pypo/liquidsoap_scripts/fdkaac.liq rename to python_apps/pypo/liquidsoap/fdkaac.liq diff --git a/python_apps/pypo/pypo/liquidsoap_scripts/generate_liquidsoap_cfg.py b/python_apps/pypo/liquidsoap/generate_liquidsoap_cfg.py similarity index 55% rename from python_apps/pypo/pypo/liquidsoap_scripts/generate_liquidsoap_cfg.py rename to python_apps/pypo/liquidsoap/generate_liquidsoap_cfg.py index e0160181b..57e4342cf 100644 --- a/python_apps/pypo/pypo/liquidsoap_scripts/generate_liquidsoap_cfg.py +++ b/python_apps/pypo/liquidsoap/generate_liquidsoap_cfg.py @@ -25,24 +25,25 @@ def generate_liquidsoap_config(ss): fh.write('log_file = "/var/log/airtime/pypo-liquidsoap/