diff --git a/install_minimal/upgrades/airtime-2.0.3/UpgradeCommon.php b/install_minimal/upgrades/airtime-2.0.3/UpgradeCommon.php deleted file mode 100644 index 75fe5012c..000000000 --- a/install_minimal/upgrades/airtime-2.0.3/UpgradeCommon.php +++ /dev/null @@ -1,252 +0,0 @@ -getMessage().PHP_EOL; - echo $CC_DBC->getUserInfo().PHP_EOL; - echo "Database connection problem.".PHP_EOL; - echo "Check if database '{$CC_CONFIG['dsn']['database']}' exists". - " with corresponding permissions.".PHP_EOL; - if ($p_exitOnError) { - exit(1); - } - } else { - $CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); - } - } - - - public static function DbTableExists($p_name) - { - global $CC_DBC; - $sql = "SELECT * FROM ".$p_name; - $result = $CC_DBC->GetOne($sql); - if (PEAR::isError($result)) { - return false; - } - return true; - } - - private static function GetAirtimeSrcDir() - { - return __DIR__."/../../../airtime_mvc"; - } - - public static function MigrateTablesToVersion($dir, $version) - { - echo "Upgrading database, may take several minutes, please wait".PHP_EOL; - - $appDir = self::GetAirtimeSrcDir(); - $command = "php --php-ini $dir/../../airtime-php.ini ". - "$appDir/library/doctrine/migrations/doctrine-migrations.phar ". - "--configuration=$dir/../../DoctrineMigrations/migrations.xml ". - "--db-configuration=$appDir/library/doctrine/migrations/migrations-db.php ". - "--no-interaction migrations:migrate $version"; - system($command); - } - - public static function BypassMigrations($dir, $version) - { - $appDir = self::GetAirtimeSrcDir(); - $command = "php --php-ini $dir/../../airtime-php.ini ". - "$appDir/library/doctrine/migrations/doctrine-migrations.phar ". - "--configuration=$dir/../../DoctrineMigrations/migrations.xml ". - "--db-configuration=$appDir/library/doctrine/migrations/migrations-db.php ". - "--no-interaction --add migrations:version $version"; - system($command); - } - - public static function upgradeConfigFiles(){ - - $configFiles = array(UpgradeCommon::CONF_FILE_AIRTIME, - UpgradeCommon::CONF_FILE_PYPO, - UpgradeCommon::CONF_FILE_LIQUIDSOAP, - UpgradeCommon::CONF_FILE_MEDIAMONITOR, - UpgradeCommon::CONF_FILE_API_CLIENT); - - // Backup the config files - $suffix = date("Ymdhis")."-".UpgradeCommon::VERSION_NUMBER; - foreach ($configFiles as $conf) { - // do not back up monit cfg - if (file_exists($conf)) { - echo "Backing up $conf to $conf$suffix.bak".PHP_EOL; - //copy($conf, $conf.$suffix.".bak"); - exec("cp -p $conf $conf$suffix.bak"); //use cli version to preserve file attributes - } - } - - self::CreateIniFiles(UpgradeCommon::CONF_BACKUP_SUFFIX); - self::MergeConfigFiles($configFiles, $suffix); - } - - /** - * This function creates the /etc/airtime configuration folder - * and copies the default config files to it. - */ - public static function CreateIniFiles($suffix) - { - if (!file_exists("/etc/airtime/")){ - if (!mkdir("/etc/airtime/", 0755, true)){ - echo "Could not create /etc/airtime/ directory. Exiting."; - exit(1); - } - } - - if (!copy(__DIR__."/airtime.conf.$suffix", self::CONF_FILE_AIRTIME)){ - echo "Could not copy airtime.conf to /etc/airtime/. Exiting."; - exit(1); - } - if (!copy(__DIR__."/pypo.cfg.$suffix", self::CONF_FILE_PYPO)){ - echo "Could not copy pypo.cfg to /etc/airtime/. Exiting."; - exit(1); - } - if (!copy(__DIR__."/media-monitor.cfg.$suffix", self::CONF_FILE_MEDIAMONITOR)){ - echo "Could not copy meadia-monitor.cfg to /etc/airtime/. Exiting."; - exit(1); - } - if (!copy(__DIR__."/api_client.cfg.$suffix", self::CONF_FILE_API_CLIENT)){ - echo "Could not copy api_client.cfg to /etc/monit/conf.d/. Exiting."; - exit(1); - } - } - - private static function MergeConfigFiles($configFiles, $suffix) { - foreach ($configFiles as $conf) { - // we want to use new liquidsoap.cfg so don't merge - // also for monit - if( $conf == self::CONF_FILE_LIQUIDSOAP){ - continue; - } - if (file_exists("$conf$suffix.bak")) { - - if($conf === self::CONF_FILE_AIRTIME) { - // Parse with sections - $newSettings = parse_ini_file($conf, true); - $oldSettings = parse_ini_file("$conf$suffix.bak", true); - } - else { - $newSettings = self::ReadPythonConfig($conf); - $oldSettings = self::ReadPythonConfig("$conf$suffix.bak"); - } - - $settings = array_keys($newSettings); - - foreach($settings as $section) { - if(isset($oldSettings[$section])) { - if(is_array($oldSettings[$section])) { - $sectionKeys = array_keys($newSettings[$section]); - foreach($sectionKeys as $sectionKey) { - // skip airtim_dir as we want to use new value - if($sectionKey != "airtime_dir"){ - if(isset($oldSettings[$section][$sectionKey])) { - self::UpdateIniValue($conf, $sectionKey, $oldSettings[$section][$sectionKey]); - } - } - } - } - else { - self::UpdateIniValue($conf, $section, $oldSettings[$section]); - } - } - } - } - } - } - - private static function ReadPythonConfig($p_filename) - { - $values = array(); - - $fh = fopen($p_filename, 'r'); - - while(!feof($fh)){ - $line = fgets($fh); - if(substr(trim($line), 0, 1) == '#' || trim($line) == ""){ - continue; - }else{ - $info = explode('=', $line, 2); - $values[trim($info[0])] = trim($info[1]); - } - } - - return $values; - } - - /** - * This function updates an INI style config file. - * - * A property and the value the property should be changed to are - * supplied. If the property is not found, then no changes are made. - * - * @param string $p_filename - * The path the to the file. - * @param string $p_property - * The property to look for in order to change its value. - * @param string $p_value - * The value the property should be changed to. - * - */ - private static function UpdateIniValue($p_filename, $p_property, $p_value) - { - $lines = file($p_filename); - $n=count($lines); - foreach ($lines as &$line) { - if ($line[0] != "#"){ - $key_value = explode("=", $line); - $key = trim($key_value[0]); - - if ($key == $p_property){ - $line = "$p_property = $p_value".PHP_EOL; - } - } - } - - $fp=fopen($p_filename, 'w'); - for($i=0; $i<$n; $i++){ - fwrite($fp, $lines[$i]); - } - fclose($fp); - } - - public static function queryDb($p_sql){ - global $CC_DBC; - - $result = $CC_DBC->getRow($p_sql, $fetchmode=DB_FETCHMODE_ASSOC); - if (PEAR::isError($result)) { - echo "Error executing $sql. Exiting."; - exit(1); - } - - return $result; - } -} diff --git a/install_minimal/upgrades/airtime-2.0.3/airtime-upgrade.php b/install_minimal/upgrades/airtime-2.0.3/airtime-upgrade.php index e10b110a2..429563cf7 100644 --- a/install_minimal/upgrades/airtime-2.0.3/airtime-upgrade.php +++ b/install_minimal/upgrades/airtime-2.0.3/airtime-upgrade.php @@ -15,15 +15,6 @@ * format, and that's what this upgrade script will be for. */ -set_include_path(__DIR__.'/../../../airtime_mvc/library' . PATH_SEPARATOR . get_include_path()); -set_include_path(__DIR__.'/../../../airtime_mvc/application/models' . PATH_SEPARATOR . get_include_path()); -set_include_path(__DIR__.'/../../../airtime_mvc/application/configs' . PATH_SEPARATOR . get_include_path()); -require_once 'conf.php'; -require_once 'propel/runtime/lib/Propel.php'; -Propel::init(__DIR__."/propel/airtime-conf.php"); - -require_once 'UpgradeCommon.php'; - class AirtimeStorWatchedDirsUpgrade{ public static function start(){ @@ -36,8 +27,6 @@ class AirtimeStorWatchedDirsUpgrade{ class AirtimeConfigFileUpgrade{ public static function start(){ - echo "* Updating configFiles\n"; - UpgradeCommon::upgradeConfigFiles(); } } @@ -47,6 +36,10 @@ class AirtimeConfigFileUpgrade{ class AirtimeMiscUpgrade{ public static function start(){ + self::modifyPypo(); + } + + public static function modifyPypo(){ echo "* Modifying User Pypo".PHP_EOL; exec("usermod -s /bin/false pypo"); exec("passwd --delete pypo"); @@ -54,7 +47,5 @@ class AirtimeMiscUpgrade{ } -UpgradeCommon::connectToDatabase(); -UpgradeCommon::SetDefaultTimezone(); AirtimeConfigFileUpgrade::start(); AirtimeMiscUpgrade::start();