From 069ebd39917f3ffa850c920b07833807446c7463 Mon Sep 17 00:00:00 2001 From: drigato Date: Thu, 24 Apr 2014 10:12:24 -0400 Subject: [PATCH] CC-5802: Upgrade application.ini file --- .../controllers/UpgradeController.php | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/airtime_mvc/application/controllers/UpgradeController.php b/airtime_mvc/application/controllers/UpgradeController.php index 3e92ed2b2..28b1abc87 100644 --- a/airtime_mvc/application/controllers/UpgradeController.php +++ b/airtime_mvc/application/controllers/UpgradeController.php @@ -40,6 +40,41 @@ class UpgradeController extends Zend_Controller_Action Application_Model_Preference::setDiskUsage($totalSpace - $freeSpace); + $iniFile = isset($_SERVER['AIRTIME_BASE']) ? $_SERVER['AIRTIME_BASE']."application.ini" : "/usr/share/airtime/application/configs/application.ini"; + + //update application.ini + $newLines = "resources.frontController.moduleDirectory = APPLICATION_PATH '/modules'\n". + "resources.frontController.plugins.putHandler = 'Zend_Controller_Plugin_PutHandler'\n". + ";load everything in the modules directory including models\n". + "resources.modules[] = ''\n"; + + $currentIniFile = file_get_contents($iniFile); + + /* We want to add the new lines immediately after the first line, '[production]' + * We read the first line into $beginning, and the rest of the file into $end. + * Then overwrite the current application.ini file with $beginning, $newLines, and $end + */ + $lines = explode("\n", $currentIniFile); + $beginning = implode("\n", array_slice($lines, 0,1)); + + //check that first line is '[production]' + if ($beginning != '[production]') { + $this->getResponse() + ->setHttpResponseCode(400) + ->appendBody('Upgrade to Airtime 2.5.3 FAILED. Could not upgrade application.ini'); + return; + } + $end = implode("\n", array_slice($lines, 1)); + + if (!is_writeable($iniFile)) { + $this->getResponse() + ->setHttpResponseCode(400) + ->appendBody('Upgrade to Airtime 2.5.3 FAILED. Could not upgrade application.ini'); + return; + } + $file = new SplFileObject($iniFile, "w"); + $file->fwrite($beginning."\n".$newLines.$end); + $this->getResponse() ->setHttpResponseCode(200) ->appendBody("Upgrade to Airtime 2.5.3 OK");