diff --git a/airtime_mvc/application/Bootstrap.php b/airtime_mvc/application/Bootstrap.php
index ee49b73a8..3af4c793e 100644
--- a/airtime_mvc/application/Bootstrap.php
+++ b/airtime_mvc/application/Bootstrap.php
@@ -79,8 +79,11 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
}
protected function _initUpgrade() {
- Logging::info("Checking if upgrade is needed...");
if (AIRTIME_CODE_VERSION > Application_Model_Preference::GetAirtimeVersion()) {
+ // This line is actually fairly important (incidentally) because it
+ // instantiates the logger singleton, which in turn decides the Airtime PHP error policy,
+ // otherwise we would trip up on the '#' characters in airtime.conf
+ Logging::info("Checking if upgrade is needed...");
$upgradeManager = new UpgradeManager();
$upgradeManager->runUpgrades(array(new AirtimeUpgrader252()), (__DIR__ . "/controllers"));
}
diff --git a/airtime_mvc/build/airtime-setup/forms/database-settings.php b/airtime_mvc/build/airtime-setup/forms/database-settings.php
index d9df0e42e..58e17426d 100644
--- a/airtime_mvc/build/airtime-setup/forms/database-settings.php
+++ b/airtime_mvc/build/airtime-setup/forms/database-settings.php
@@ -10,7 +10,7 @@
- Enter your Airtime database settings here. Empty or non-existent database names will be created and populated
+ Enter your Airtime database settings here. Empty or non-existent databases will be created and populated
if the given user has administrative permissions in postgres.
diff --git a/airtime_mvc/build/airtime.example.conf b/airtime_mvc/build/airtime.example.conf
index 65369e0c5..98c5c7887 100644
--- a/airtime_mvc/build/airtime.example.conf
+++ b/airtime_mvc/build/airtime.example.conf
@@ -1,42 +1,42 @@
-; ----------------------------------------------------------------------
-; A I R T I M E C O N F I G U R A T I O N
-; ----------------------------------------------------------------------
-;
-; This is an example configuration for Airtime. If you just want to
-; get started with a basic Airtime setup, or don't know if you should
-; be reconfiguring any of the following values, just rename this file
-; to 'airtime.conf'.
-;
-; ----------------------------------------------------------------------
+# ----------------------------------------------------------------------
+# A I R T I M E C O N F I G U R A T I O N
+# ----------------------------------------------------------------------
+#
+# This is an example configuration for Airtime. If you just want to
+# get started with a basic Airtime setup, or don't know if you should
+# be reconfiguring any of the following values, just rename this file
+# to 'airtime.conf'.
+#
+# ----------------------------------------------------------------------
-; ----------------------------------------------------------------------
-; G E N E R A L S E T T I N G S
-; ----------------------------------------------------------------------
-;
-; These settings are used for Airtime's webserver configuration, and
-; for general-purpose properties.
-;
-; api_key: The API key for your Airtime installation.
-; The value is generated the first time you use Airtime.
-;
-; web_server_user: The default webserver user.
-; The default is www-data.
-;
-; base_url: The host name for your webserver.
-; The default is localhost.
-;
-; base_port: The port for your webserver.
-; The default is 80.
-;
-; base_dir: The root directory for your Airtime installation
-; on your webserver, relative to the base_url.
-; The default is /.
-;
-; cache_ahead_hours: How many hours ahead of time the Airtime playout
-; engine (pypo) should cache scheduled media files.
-; The default is 1.
-;
+# ----------------------------------------------------------------------
+# G E N E R A L S E T T I N G S
+# ----------------------------------------------------------------------
+#
+# These settings are used for Airtime's webserver configuration, and
+# for general-purpose properties.
+#
+# api_key: The API key for your Airtime installation.
+# The value is generated the first time you use Airtime.
+#
+# web_server_user: The default webserver user.
+# The default is www-data.
+#
+# base_url: The host name for your webserver.
+# The default is localhost.
+#
+# base_port: The port for your webserver.
+# The default is 80.
+#
+# base_dir: The root directory for your Airtime installation
+# on your webserver, relative to the base_url.
+# The default is /.
+#
+# cache_ahead_hours: How many hours ahead of time the Airtime playout
+# engine (pypo) should cache scheduled media files.
+# The default is 1.
+#
[general]
api_key =
web_server_user = www-data
@@ -44,99 +44,99 @@ base_url = localhost
base_port = 80
base_dir = /
cache_ahead_hours = 1
-;
-; ----------------------------------------------------------------------
+#
+# ----------------------------------------------------------------------
-; ----------------------------------------------------------------------
-; D A T A B A S E
-; ----------------------------------------------------------------------
-;
-; These settings are used to configure your database connection.
-;
-; host: The hostname of the database server.
-; On a default Airtime installation, set this to localhost.
-;
-; dbname: The name of the Airtime database.
-; The default is airtime.
-;
-; dbuser: The username for the Airtime database user.
-; The default is airtime.
-;
-; dbpass: The password for the Airtime database user.
-; The default is airtime.
-;
+# ----------------------------------------------------------------------
+# D A T A B A S E
+# ----------------------------------------------------------------------
+#
+# These settings are used to configure your database connection.
+#
+# host: The hostname of the database server.
+# On a default Airtime installation, set this to localhost.
+#
+# dbname: The name of the Airtime database.
+# The default is airtime.
+#
+# dbuser: The username for the Airtime database user.
+# The default is airtime.
+#
+# dbpass: The password for the Airtime database user.
+# The default is airtime.
+#
[database]
host = localhost
dbname = airtime
dbuser = airtime
dbpass = airtime
-;
-; ----------------------------------------------------------------------
+#
+# ----------------------------------------------------------------------
-; ----------------------------------------------------------------------
-; R A B B I T M Q
-; ----------------------------------------------------------------------
-;
-; These settings are used to configure the RabbitMQ messaging
-; configuration for your Airtime installation.
-;
-; host: The IP address for the RabbitMQ service.
-; The default is 127.0.0.1.
-;
-; port: The port for the RabbitMQ service.
-; The default is 5672.
-;
-; user: The username for the RabbitMQ user.
-; The default is airtime.
-;
-; password: The password for the RabbitMQ user.
-; The default is airtime.
-;
-; vhost: The virtual host for the RabbitMQ service database.
-; The default is /airtime.
-;
+# ----------------------------------------------------------------------
+# R A B B I T M Q
+# ----------------------------------------------------------------------
+#
+# These settings are used to configure the RabbitMQ messaging
+# configuration for your Airtime installation.
+#
+# host: The IP address for the RabbitMQ service.
+# The default is 127.0.0.1.
+#
+# port: The port for the RabbitMQ service.
+# The default is 5672.
+#
+# user: The username for the RabbitMQ user.
+# The default is airtime.
+#
+# password: The password for the RabbitMQ user.
+# The default is airtime.
+#
+# vhost: The virtual host for the RabbitMQ service database.
+# The default is /airtime.
+#
[rabbitmq]
host = 127.0.0.1
port = 5672
user = airtime
password = airtime
vhost = /airtime
-;
-; ----------------------------------------------------------------------
+#
+# ----------------------------------------------------------------------
-; ----------------------------------------------------------------------
-; M E D I A M O N I T O R
-; ----------------------------------------------------------------------
-;
-; check_filesystem_events: How long to queue up events performed on the
-; files themselves, in seconds
-; The default is 5
-;
-; check_airtime_events: How long to queue metadata input from airtime,
-; in seconds
-; The default is 30
-;
-; touch_interval:
-; The default is 5
-;
-; chunking_number:
-; The default is 450
-;
-; request_max_wait: The maximum request wait time, in seconds
-; The default is 3.0
-;
-; rmq_event_wait: The RabbitMQ event wait time, in seconds
-; The default is 0.1
-;
-; logpath: The media monitor log file path
-; The default is '/var/log/airtime/media-monitor/media-monitor.log'
-;
-; index_path: The media monitor index path
-; The default is '/var/tmp/airtime/media-monitor/last_index'
-;
+# ----------------------------------------------------------------------
+# M E D I A M O N I T O R
+# ----------------------------------------------------------------------
+#
+# check_filesystem_events: How long to queue up events performed on the
+# files themselves, in seconds
+# The default is 5
+#
+# check_airtime_events: How long to queue metadata input from airtime,
+# in seconds
+# The default is 30
+#
+# touch_interval:
+# The default is 5
+#
+# chunking_number:
+# The default is 450
+#
+# request_max_wait: The maximum request wait time, in seconds
+# The default is 3.0
+#
+# rmq_event_wait: The RabbitMQ event wait time, in seconds
+# The default is 0.1
+#
+# logpath: The media monitor log file path
+# The default is '/var/log/airtime/media-monitor/media-monitor.log'
+#
+# index_path: The media monitor index path
+# The default is '/var/tmp/airtime/media-monitor/last_index'
+#
[media-monitor]
check_filesystem_events = 5
check_airtime_events = 30
@@ -146,129 +146,129 @@ request_max_wait = 3.0
rmq_event_wait = 0.1
logpath = '/var/log/airtime/media-monitor/media-monitor.log'
index_path = '/var/tmp/airtime/media-monitor/last_index'
-;
-; ----------------------------------------------------------------------
+#
+# ----------------------------------------------------------------------
-; ----------------------------------------------------------------------
-; P Y P O
-; ----------------------------------------------------------------------
-;
-; api_client: Set the type of client you are using.
-; Currently supported types:
-; 1) 'obp' = Open Broadcast Platform
-; 2) 'airtime'
-; The default is 'airtime'
-;
-; cache_dir: The directory for pypo cache files
-; The default is '/var/tmp/airtime/pypo/cache/'
-;
-; file_dir: The directory for pypo media files
-; The default is '/var/tmp/airtime/pypo/files/'
-;
-; tmp_dir: The directory for pypo temp files
-; The default is '/var/tmp/airtime/pypo/tmp/'
-;
-; cache_base_dir: The pypo base cache directory
-; The default is '/var/tmp/airtime/pypo/'
-;
-; log_base_dir: The base directory for Airtime log files
-; The default is '/var/log/airtime'
-;
-; pypo_log_dir: The directory for pypo log files
-; The default is '/var/log/airtime/pypo'
-;
-; liquidsoap_log_dir: The directory for liquidsoap log files
-; The default is '/var/log/airtime/pypo-liquidsoap'
-;
-; ls_host: Liquidsoap connection host
-; The default is '127.0.0.1'
-;
-; ls_port: Liquidsoap connection port
-; The default is '1234'
-;
-; poll_interval: Poll interval in seconds
-;
-; This will rarely need to be changed because any schedule
-; changes are automatically sent to pypo immediately
-; This is how often the poll script downloads new schedules
-; and files from the server in the event that no changes
-; are made to the schedule
-; The default is 3600
-;
-; push_interval: Push interval in seconds
-;
-; This is how often the push script checks whether it has
-; something new to push to liquidsoap
-; The default is 1
-;
-; cue_style: Can be set to 'pre' or 'otf'
-; 'pre' cues while playlist preparation
-; 'otf' (on the fly) cues while loading into ls
-; (needs the post_processor patch)
-; The default is 'pre'
-;
-; record_bitrate: The bitrate for recordings
-; The default is 256
-;
-; record_samplerate: The samplerate for recordings
-; The default is 44100
-;
-; record_channels: The number of channels for recordings
-; The default is 2
-;
-; record_sample_size: The sample size for recordings
-; The default is 16
-;
-; record_file_type: Can be either ogg|mp3, mp3 recording requires
-; installation of the package "lame"
-; The default is ogg
-;
-; base_recorded_files: Base path to store recordered shows at
-; The default is '/var/tmp/airtime/show-recorder/'
-;
+# ----------------------------------------------------------------------
+# P Y P O
+# ----------------------------------------------------------------------
+#
+# api_client: Set the type of client you are using.
+# Currently supported types:
+# 1) 'obp' = Open Broadcast Platform
+# 2) 'airtime'
+# The default is 'airtime'
+#
+# cache_dir: The directory for pypo cache files
+# The default is '/var/tmp/airtime/pypo/cache/'
+#
+# file_dir: The directory for pypo media files
+# The default is '/var/tmp/airtime/pypo/files/'
+#
+# tmp_dir: The directory for pypo temp files
+# The default is '/var/tmp/airtime/pypo/tmp/'
+#
+# cache_base_dir: The pypo base cache directory
+# The default is '/var/tmp/airtime/pypo/'
+#
+# log_base_dir: The base directory for Airtime log files
+# The default is '/var/log/airtime'
+#
+# pypo_log_dir: The directory for pypo log files
+# The default is '/var/log/airtime/pypo'
+#
+# liquidsoap_log_dir: The directory for liquidsoap log files
+# The default is '/var/log/airtime/pypo-liquidsoap'
+#
+# ls_host: Liquidsoap connection host
+# The default is '127.0.0.1'
+#
+# ls_port: Liquidsoap connection port
+# The default is '1234'
+#
+# poll_interval: Poll interval in seconds
+#
+# This will rarely need to be changed because any schedule
+# changes are automatically sent to pypo immediately
+# This is how often the poll script downloads new schedules
+# and files from the server in the event that no changes
+# are made to the schedule
+# The default is 3600
+#
+# push_interval: Push interval in seconds
+#
+# This is how often the push script checks whether it has
+# something new to push to liquidsoap
+# The default is 1
+#
+# cue_style: Can be set to 'pre' or 'otf'
+# 'pre' cues while playlist preparation
+# 'otf' (on the fly) cues while loading into ls
+# (needs the post_processor patch)
+# The default is 'pre'
+#
+# record_bitrate: The bitrate for recordings
+# The default is 256
+#
+# record_samplerate: The samplerate for recordings
+# The default is 44100
+#
+# record_channels: The number of channels for recordings
+# The default is 2
+#
+# record_sample_size: The sample size for recordings
+# The default is 16
+#
+# record_file_type: Can be either ogg|mp3, mp3 recording requires
+# installation of the package "lame"
+# The default is ogg
+#
+# base_recorded_files: Base path to store recordered shows at
+# The default is '/var/tmp/airtime/show-recorder/'
+#
[pypo]
api_client = 'airtime'
-; ---------- Cache directories - !! Include trailing slash !! ----------
+# ---------- Cache directories - !! Include trailing slash !! ----------
cache_dir = '/var/tmp/airtime/pypo/cache/'
file_dir = '/var/tmp/airtime/pypo/files/'
tmp_dir = '/var/tmp/airtime/pypo/tmp/'
-; ------- Setup directories - !! Don't include trailing slash !! -------
+# ------- Setup directories - !! Don't include trailing slash !! -------
cache_base_dir = '/var/tmp/airtime/pypo'
log_base_dir = '/var/log/airtime'
pypo_log_dir = '/var/log/airtime/pypo'
liquidsoap_log_dir = '/var/log/airtime/pypo-liquidsoap'
-; ------------------------ Liquidsoap Settings -------------------------
+# ------------------------ Liquidsoap Settings -------------------------
ls_host = '127.0.0.1'
ls_port = '1234'
-; -------------------------- Pypo Preferences --------------------------
+# -------------------------- Pypo Preferences --------------------------
poll_interval = 3600
push_interval = 1
cue_style = 'pre'
-; ---------------------- Recorded Audio Settings -----------------------
+# ---------------------- Recorded Audio Settings -----------------------
record_bitrate = 256
record_samplerate = 44100
record_channels = 2
record_sample_size = 16
record_file_type = 'ogg'
base_recorded_files = '/var/tmp/airtime/show-recorder/'
-;
-; ----------------------------------------------------------------------
+#
+# ----------------------------------------------------------------------
-; ----------------------------------------------------------------------
-; S O U N D C L O U D
-; ----------------------------------------------------------------------
-;
-; connection_retries: The number of times to retry the connection to
-; Soundcloud.
-; The default is 3.
-;
-; time_between_retries: The time between connection retries, in seconds.
-; The default is 60.
-;
+# ----------------------------------------------------------------------
+# S O U N D C L O U D
+# ----------------------------------------------------------------------
+#
+# connection_retries: The number of times to retry the connection to
+# Soundcloud.
+# The default is 3.
+#
+# time_between_retries: The time between connection retries, in seconds.
+# The default is 60.
+#
[soundcloud]
connection_retries = 3
time_between_retries = 60
-;
-; ----------------------------------------------------------------------
\ No newline at end of file
+#
+# ----------------------------------------------------------------------
\ No newline at end of file
diff --git a/python_apps/pypo/setup.py b/python_apps/pypo/setup.py
index fd57676b5..5f0d8a61e 100644
--- a/python_apps/pypo/setup.py
+++ b/python_apps/pypo/setup.py
@@ -21,7 +21,7 @@ else:
('/etc/init', ['install/airtime-playout.conf.template']),
('/etc/init', ['install/airtime-liquidsoap.conf.template']),
('/var/log/airtime/pypo', []),
- ('/var/log/airtime/pypo/liquidsoap', []),
+ ('/var/log/airtime/pypo-liquidsoap', []),
('/var/tmp/airtime/pypo', []),
('/var/tmp/airtime/pypo/cache', []),
('/var/tmp/airtime/pypo/files', []),
diff --git a/uninstall b/uninstall
index de957b815..e2b6c0b31 100755
--- a/uninstall
+++ b/uninstall
@@ -31,8 +31,13 @@ EOF
}
removeRabbitmqAirtimeSettings() {
- RMQ_VHOST=$(awk -F ' = ' '{if (! ($0 ~ /^;/) && $0 ~ /^vhost/ ) print $2}' /etc/airtime/airtime.conf)
- RMQ_USER=$(awk -F ' = ' '{if (! ($0 ~ /^;/) && $0 ~ /^user/ ) print $2}' /etc/airtime/airtime.conf)
+ if [ -f /etc/airtime/airtime.conf ]; then
+ RMQ_VHOST=$(awk -F ' = ' '{if (! ($0 ~ /^;/) && $0 ~ /^vhost/ ) print $2}' /etc/airtime/airtime.conf)
+ RMQ_USER=$(awk -F ' = ' '{if (! ($0 ~ /^;/) && $0 ~ /^user/ ) print $2}' /etc/airtime/airtime.conf)
+ else
+ RMQ_VHOST=/airtime
+ RMQ_USER=airtime
+ fi
rabbitmqctl delete_vhost ${RMQ_VHOST}
rabbitmqctl delete_user ${RMQ_USER}
@@ -82,15 +87,13 @@ else
fi
echo -e "\nUninstalling Airtime..."
-if [ -f /etc/airtime/airtime.conf ]; then
- removeRabbitmqAirtimeSettings
-fi
+removeRabbitmqAirtimeSettings
for i in ${FILES[*]}; do
rm -rf $i
done
-echo -e "\Do you want to drop your current Airtime database? (Y/n): \c"
+echo -e "\nDo you want to drop your current Airtime database? (Y/n): \c"
read IN
if [[ "$IN" = "y" || "$IN" = "Y" ]]; then
echo -e "\nDropping Airtime database..."