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.
This commit is contained in:
Paul Baranowski 2011-04-14 15:04:44 -04:00
parent 782f00b32f
commit 4af55027ad
4 changed files with 53 additions and 23 deletions

View File

@ -5,13 +5,15 @@
* @license http://www.gnu.org/licenses/gpl.txt * @license http://www.gnu.org/licenses/gpl.txt
*/ */
echo PHP_EOL;
echo "******************************** Install Begin *********************************".PHP_EOL; echo "******************************** Install Begin *********************************".PHP_EOL;
require_once(dirname(__FILE__).'/include/AirtimeIni.php'); require_once(dirname(__FILE__).'/include/AirtimeIni.php');
require_once(dirname(__FILE__).'/include/AirtimeInstall.php'); require_once(dirname(__FILE__).'/include/AirtimeInstall.php');
AirtimeInstall::ExitIfNotRoot(); AirtimeInstall::ExitIfNotRoot();
AirtimeIni::CreateIniFile(); AirtimeIni::ExitIfIniFilesExist();
AirtimeIni::CreateIniFiles();
AirtimeIni::UpdateIniFiles(); AirtimeIni::UpdateIniFiles();
require_once(dirname(__FILE__).'/../application/configs/conf.php'); require_once(dirname(__FILE__).'/../application/configs/conf.php');

View File

@ -10,8 +10,8 @@ require_once(dirname(__FILE__).'/include/AirtimeInstall.php');
// Need to check that we are superuser before running this. // Need to check that we are superuser before running this.
AirtimeInstall::ExitIfNotRoot(); AirtimeInstall::ExitIfNotRoot();
if (!file_exists('/etc/airtime/airtime.conf')) { if (!file_exists(AirtimeIni::CONF_FILE_AIRTIME)) {
echo PHP_EOL."Airtime config file '/etc/airtime/airtime.conf' does not exist.".PHP_EOL; 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; echo "Most likely this means that Airtime is not installed, so there is nothing to do.".PHP_EOL.PHP_EOL;
exit(); exit();
} }
@ -72,7 +72,7 @@ $command = "sudo -u postgres psql postgres --command \"DROP USER {$CC_CONFIG['ds
if ($results == 0) { if ($results == 0) {
echo " * User '{$CC_CONFIG['dsn']['username']}' deleted.".PHP_EOL; echo " * User '{$CC_CONFIG['dsn']['username']}' deleted.".PHP_EOL;
} else { } else {
echo " * Nothing to delete..".PHP_EOL; echo " * Nothing to delete.".PHP_EOL;
} }

View File

@ -22,12 +22,40 @@ if (!function_exists('pg_connect')) {
} }
class AirtimeIni{ 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 * This function creates the /etc/airtime configuration folder
* and copies the default config files to it. * and copies the default config files to it.
*/ */
static function CreateIniFile() static function CreateIniFiles()
{ {
if (!file_exists("/etc/airtime/")){ if (!file_exists("/etc/airtime/")){
if (!mkdir("/etc/airtime/", 0755, true)){ 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."; echo "Could not copy airtime.conf to /etc/airtime/. Exiting.";
exit(1); 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."; echo "Could not copy pypo.cfg to /etc/airtime/. Exiting.";
exit(1); 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."; echo "Could not copy recorder.cfg to /etc/airtime/. Exiting.";
exit(1); 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."; echo "Could not copy liquidsoap.cfg to /etc/airtime/. Exiting.";
exit(1); exit(1);
} }
@ -60,20 +88,20 @@ class AirtimeIni{
*/ */
static function RemoveIniFiles() static function RemoveIniFiles()
{ {
if (file_exists("/etc/airtime/airtime.conf")){ if (file_exists(AirtimeIni::CONF_FILE_AIRTIME)){
unlink("/etc/airtime/airtime.conf"); unlink(AirtimeIni::CONF_FILE_AIRTIME);
} }
if (file_exists("/etc/airtime/pypo.cfg")){ if (file_exists(AirtimeIni::CONF_FILE_PYPO)){
unlink("/etc/airtime/pypo.cfg"); unlink(AirtimeIni::CONF_FILE_PYPO);
} }
if (file_exists("/etc/airtime/recorder.cfg")){ if (file_exists(AirtimeIni::CONF_FILE_RECORDER)){
unlink("/etc/airtime/recorder.cfg"); unlink(AirtimeIni::CONF_FILE_RECORDER);
} }
if (file_exists("/etc/airtime/liquidsoap.cfg")){ if (file_exists(AirtimeIni::CONF_FILE_LIQUIDSOAP)){
unlink("/etc/airtime/liquidsoap.cfg"); unlink(AirtimeIni::CONF_FILE_LIQUIDSOAP);
} }
if (file_exists("etc/airtime")){ if (file_exists("etc/airtime")){
@ -146,11 +174,11 @@ class AirtimeIni{
static function UpdateIniFiles() static function UpdateIniFiles()
{ {
$api_key = AirtimeIni::GenerateRandomString(); $api_key = AirtimeIni::GenerateRandomString();
AirtimeIni::UpdateIniValue('/etc/airtime/airtime.conf', 'api_key', $api_key); AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_AIRTIME, 'api_key', $api_key);
AirtimeIni::UpdateIniValue('/etc/airtime/airtime.conf', 'base_files_dir', realpath(__DIR__.'/../../').'/files'); AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_AIRTIME, 'base_files_dir', realpath(__DIR__.'/../../').'/files');
AirtimeIni::UpdateIniValue('/etc/airtime/airtime.conf', 'airtime_dir', realpath(__DIR__.'/../../')); AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_AIRTIME, 'airtime_dir', realpath(__DIR__.'/../../'));
AirtimeIni::UpdateIniValue('/etc/airtime/pypo.cfg', 'api_key', "'$api_key'"); AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_PYPO, 'api_key', "'$api_key'");
AirtimeIni::UpdateIniValue('/etc/airtime/recorder.cfg', 'api_key', "'$api_key'"); AirtimeIni::UpdateIniValue(AirtimeIni::CONF_FILE_RECORDER, 'api_key', "'$api_key'");
AirtimeIni::UpdateIniValue(__DIR__.'/../../build/build.properties', 'project.home', realpath(__dir__.'/../../')); AirtimeIni::UpdateIniValue(__DIR__.'/../../build/build.properties', 'project.home', realpath(__dir__.'/../../'));
} }
} }

View File

@ -9,7 +9,7 @@
require_once(dirname(__FILE__).'/../../include/AirtimeIni.php'); require_once(dirname(__FILE__).'/../../include/AirtimeIni.php');
require_once(dirname(__FILE__).'/../../include/AirtimeInstall.php'); require_once(dirname(__FILE__).'/../../include/AirtimeInstall.php');
AirtimeIni::CreateIniFile(); AirtimeIni::CreateIniFiles();
AirtimeIni::UpdateIniFiles(); AirtimeIni::UpdateIniFiles();
echo PHP_EOL."*** Updating Database Tables ***".PHP_EOL; echo PHP_EOL."*** Updating Database Tables ***".PHP_EOL;