From 4af55027ad12aa4cd66fe46e909d63ec2ee71ada Mon Sep 17 00:00:00 2001 From: Paul Baranowski Date: Thu, 14 Apr 2011 15:04:44 -0400 Subject: [PATCH] Added const values for the names of the INI files. Also verify with the user if they want to overwrite their INI files if they are re-installing. --- install/airtime-install.php | 4 +- install/airtime-uninstall.php | 6 +- install/include/AirtimeIni.php | 64 +++++++++++++------ .../upgrades/airtime-1.7/airtime-upgrade.php | 2 +- 4 files changed, 53 insertions(+), 23 deletions(-) diff --git a/install/airtime-install.php b/install/airtime-install.php index 24d427638..11950d3d7 100644 --- a/install/airtime-install.php +++ b/install/airtime-install.php @@ -5,13 +5,15 @@ * @license http://www.gnu.org/licenses/gpl.txt */ +echo PHP_EOL; echo "******************************** Install Begin *********************************".PHP_EOL; require_once(dirname(__FILE__).'/include/AirtimeIni.php'); require_once(dirname(__FILE__).'/include/AirtimeInstall.php'); AirtimeInstall::ExitIfNotRoot(); -AirtimeIni::CreateIniFile(); +AirtimeIni::ExitIfIniFilesExist(); +AirtimeIni::CreateIniFiles(); AirtimeIni::UpdateIniFiles(); require_once(dirname(__FILE__).'/../application/configs/conf.php'); diff --git a/install/airtime-uninstall.php b/install/airtime-uninstall.php index ee96439a9..f4b265559 100644 --- a/install/airtime-uninstall.php +++ b/install/airtime-uninstall.php @@ -10,8 +10,8 @@ require_once(dirname(__FILE__).'/include/AirtimeInstall.php'); // Need to check that we are superuser before running this. AirtimeInstall::ExitIfNotRoot(); -if (!file_exists('/etc/airtime/airtime.conf')) { - echo PHP_EOL."Airtime config file '/etc/airtime/airtime.conf' does not exist.".PHP_EOL; +if (!file_exists(AirtimeIni::CONF_FILE_AIRTIME)) { + echo PHP_EOL."Airtime config file '".AirtimeIni::CONF_FILE_AIRTIME."' does not exist.".PHP_EOL; echo "Most likely this means that Airtime is not installed, so there is nothing to do.".PHP_EOL.PHP_EOL; exit(); } @@ -72,7 +72,7 @@ $command = "sudo -u postgres psql postgres --command \"DROP USER {$CC_CONFIG['ds if ($results == 0) { echo " * User '{$CC_CONFIG['dsn']['username']}' deleted.".PHP_EOL; } else { - echo " * Nothing to delete..".PHP_EOL; + echo " * Nothing to delete.".PHP_EOL; } diff --git a/install/include/AirtimeIni.php b/install/include/AirtimeIni.php index 6cebc4bc2..f6b8418b7 100644 --- a/install/include/AirtimeIni.php +++ b/install/include/AirtimeIni.php @@ -22,12 +22,40 @@ if (!function_exists('pg_connect')) { } class AirtimeIni{ + const CONF_FILE_AIRTIME = "/etc/airtime/airtime.conf"; + const CONF_FILE_PYPO = "/etc/airtime/pypo.cfg"; + const CONF_FILE_RECORDER = "/etc/airtime/recorder.cfg"; + const CONF_FILE_LIQUIDSOAP = "/etc/airtime/liquidsoap.cfg"; + + + static function ExitIfIniFilesExist() + { + $configFiles = array(AirtimeIni::CONF_FILE_AIRTIME, + AirtimeIni::CONF_FILE_PYPO, + AirtimeIni::CONF_FILE_RECORDER, + AirtimeIni::CONF_FILE_LIQUIDSOAP); + $exist = false; + foreach ($configFiles as $conf) { + if (file_exists($conf)) { + echo "Existing config file detected at $conf".PHP_EOL; + $exist = true; + } + } + if ($exist) { + echo PHP_EOL."Existing config files will be overwritten. Do you want to continue? (y/N) "; + $response = trim(fgets(STDIN)); + if ($response != "Y" && $response != "y") { + echo "Install process stopped.".PHP_EOL.PHP_EOL; + exit(); + } + } + } /** * This function creates the /etc/airtime configuration folder * and copies the default config files to it. */ - static function CreateIniFile() + static function CreateIniFiles() { if (!file_exists("/etc/airtime/")){ if (!mkdir("/etc/airtime/", 0755, true)){ @@ -36,19 +64,19 @@ class AirtimeIni{ } } - if (!copy(__DIR__."/../../build/airtime.conf", "/etc/airtime/airtime.conf")){ + if (!copy(__DIR__."/../../build/airtime.conf", AirtimeIni::CONF_FILE_AIRTIME)){ echo "Could not copy airtime.conf to /etc/airtime/. Exiting."; exit(1); } - if (!copy(__DIR__."/../../python_apps/pypo/pypo.cfg", "/etc/airtime/pypo.cfg")){ + if (!copy(__DIR__."/../../python_apps/pypo/pypo.cfg", AirtimeIni::CONF_FILE_PYPO)){ echo "Could not copy pypo.cfg to /etc/airtime/. Exiting."; exit(1); } - if (!copy(__DIR__."/../../python_apps/show-recorder/recorder.cfg", "/etc/airtime/recorder.cfg")){ + if (!copy(__DIR__."/../../python_apps/show-recorder/recorder.cfg", AirtimeIni::CONF_FILE_RECORDER)){ echo "Could not copy recorder.cfg to /etc/airtime/. Exiting."; exit(1); } - if (!copy(__DIR__."/../../python_apps/pypo/scripts/liquidsoap.cfg", "/etc/airtime/liquidsoap.cfg")){ + if (!copy(__DIR__."/../../python_apps/pypo/scripts/liquidsoap.cfg", AirtimeIni::CONF_FILE_LIQUIDSOAP)){ echo "Could not copy liquidsoap.cfg to /etc/airtime/. Exiting."; exit(1); } @@ -60,20 +88,20 @@ class AirtimeIni{ */ static function RemoveIniFiles() { - if (file_exists("/etc/airtime/airtime.conf")){ - unlink("/etc/airtime/airtime.conf"); + if (file_exists(AirtimeIni::CONF_FILE_AIRTIME)){ + unlink(AirtimeIni::CONF_FILE_AIRTIME); } - if (file_exists("/etc/airtime/pypo.cfg")){ - unlink("/etc/airtime/pypo.cfg"); + if (file_exists(AirtimeIni::CONF_FILE_PYPO)){ + unlink(AirtimeIni::CONF_FILE_PYPO); } - if (file_exists("/etc/airtime/recorder.cfg")){ - unlink("/etc/airtime/recorder.cfg"); + if (file_exists(AirtimeIni::CONF_FILE_RECORDER)){ + unlink(AirtimeIni::CONF_FILE_RECORDER); } - if (file_exists("/etc/airtime/liquidsoap.cfg")){ - unlink("/etc/airtime/liquidsoap.cfg"); + if (file_exists(AirtimeIni::CONF_FILE_LIQUIDSOAP)){ + unlink(AirtimeIni::CONF_FILE_LIQUIDSOAP); } if (file_exists("etc/airtime")){ @@ -146,11 +174,11 @@ class AirtimeIni{ static function UpdateIniFiles() { $api_key = AirtimeIni::GenerateRandomString(); - AirtimeIni::UpdateIniValue('/etc/airtime/airtime.conf', 'api_key', $api_key); - AirtimeIni::UpdateIniValue('/etc/airtime/airtime.conf', 'base_files_dir', realpath(__DIR__.'/../../').'/files'); - AirtimeIni::UpdateIniValue('/etc/airtime/airtime.conf', 'airtime_dir', realpath(__DIR__.'/../../')); - AirtimeIni::UpdateIniValue('/etc/airtime/pypo.cfg', 'api_key', "'$api_key'"); - AirtimeIni::UpdateIniValue('/etc/airtime/recorder.cfg', 'api_key', "'$api_key'"); + AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_AIRTIME, 'api_key', $api_key); + AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_AIRTIME, 'base_files_dir', realpath(__DIR__.'/../../').'/files'); + AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_AIRTIME, 'airtime_dir', realpath(__DIR__.'/../../')); + AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_PYPO, 'api_key', "'$api_key'"); + AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_RECORDER, 'api_key', "'$api_key'"); AirtimeIni::UpdateIniValue(__DIR__.'/../../build/build.properties', 'project.home', realpath(__dir__.'/../../')); } } diff --git a/install/upgrades/airtime-1.7/airtime-upgrade.php b/install/upgrades/airtime-1.7/airtime-upgrade.php index 4052ce4b2..be0431db6 100644 --- a/install/upgrades/airtime-1.7/airtime-upgrade.php +++ b/install/upgrades/airtime-1.7/airtime-upgrade.php @@ -9,7 +9,7 @@ require_once(dirname(__FILE__).'/../../include/AirtimeIni.php'); require_once(dirname(__FILE__).'/../../include/AirtimeInstall.php'); -AirtimeIni::CreateIniFile(); +AirtimeIni::CreateIniFiles(); AirtimeIni::UpdateIniFiles(); echo PHP_EOL."*** Updating Database Tables ***".PHP_EOL;