From e53804f1edb0d8412d99b5fe9f4cc0ec0803a601 Mon Sep 17 00:00:00 2001 From: naomiaro Date: Thu, 4 Nov 2010 18:01:31 -0400 Subject: [PATCH] changed for propel --- install/nondbinstall.php | 176 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 install/nondbinstall.php diff --git a/install/nondbinstall.php b/install/nondbinstall.php new file mode 100644 index 000000000..dfe1349b1 --- /dev/null +++ b/install/nondbinstall.php @@ -0,0 +1,176 @@ +GetOne('SELECT COUNT(*) FROM pg_language WHERE lanname = \'plpgsql\''); +if ($langIsInstalled == '0') { + echo " * Installing Postgres scripting language...\n"; + $sql = "CREATE LANGUAGE 'plpgsql'"; + camp_install_query($sql, false); +} else { + echo " * Postgres scripting language already installed\n"; +} + +//------------------------------------------------------------------------ +// Install default data +//------------------------------------------------------------------------ +echo " *** Inserting Default Data ***\n"; + +// Add the "Station Preferences" group +if (!empty($CC_CONFIG['StationPrefsGr'])) { + if (!Subjects::GetSubjId('scheduler')) { + echo " * Creating group '".$CC_CONFIG['StationPrefsGr']."'..."; + $stPrefGr = Subjects::AddSubj($CC_CONFIG['StationPrefsGr']); + Subjects::AddSubjectToGroup('root', $CC_CONFIG['StationPrefsGr']); + echo "done.\n"; + } else { + echo " * Skipping: group already exists: '".$CC_CONFIG['StationPrefsGr']."'\n"; + } +} + +// Add the root user if it doesnt exist yet. +$rootUid = Subjects::GetSubjId('root'); +if (!$rootUid) { + echo " * Creating user 'root'..."; + $rootUid = BasicStor::addSubj("root", $CC_CONFIG['tmpRootPass']); + + // Add root user to the admin group + //$r = Subjects::AddSubjectToGroup('root', $CC_CONFIG['AdminsGr']); + //if (PEAR::isError($r)) { + //return $r; + //} + echo "done.\n"; +} else { + echo " * Skipping: user already exists: 'root'\n"; +} + +// Create the user named 'scheduler'. +if (!Subjects::GetSubjId('scheduler')) { + echo " * Creating user 'scheduler'..."; + $subid = Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']); + $res = Alib::AddPerm($subid, 'read', '0', 'A'); + //$r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']); + echo "done.\n"; +} else { + echo " * Skipping: user already exists: 'scheduler'\n"; +} + +// Need to add 'scheduler' to group StationPrefs +Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['StationPrefsGr']); + + +//------------------------------------------------------------------------ +// Install storage directories +//------------------------------------------------------------------------ +echo " *** Directory Setup ***\n"; +foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'cronDir') as $d) { + $test = file_exists($CC_CONFIG[$d]); + if ( $test === FALSE ) { + @mkdir($CC_CONFIG[$d], 02775); + if (file_exists($CC_CONFIG[$d])) { + $rp = realpath($CC_CONFIG[$d]); + echo " * Directory $rp created\n"; + } else { + echo " * Failed creating {$CC_CONFIG[$d]}\n"; + exit(1); + } + } elseif (is_writable($CC_CONFIG[$d])) { + $rp = realpath($CC_CONFIG[$d]); + echo " * Skipping directory already exists: $rp\n"; + } else { + $rp = realpath($CC_CONFIG[$d]); + echo " * WARNING: Directory already exists, but is not writable: $rp\n"; + //exit(1); + } + $CC_CONFIG[$d] = $rp; +} + +//------------------------------------------------------------------------ +// Storage directory writability test +//------------------------------------------------------------------------ + +//echo " * Testing writability of ".$CC_CONFIG['storageDir']."..."; +//if (!($fp = @fopen($CC_CONFIG['storageDir']."/_writeTest", 'w'))) { +// echo "\nPlease make directory {$CC_CONFIG['storageDir']} writeable by your webserver". +// "\nand run install again\n\n"; +// exit(1); +//} else { +// fclose($fp); +// unlink($CC_CONFIG['storageDir']."/_writeTest"); +//} +//echo "done.\n"; + + +// +// Make sure the Smarty Templates Compiled directory has the right perms +// +echo " * Setting dir permissions...\n"; +install_setDirPermissions($CC_CONFIG["smartyTemplateCompiled"]); +install_setDirPermissions($CC_CONFIG["storageDir"]); +install_setDirPermissions($CC_CONFIG["bufferDir"]); +install_setDirPermissions($CC_CONFIG["transDir"]); +install_setDirPermissions($CC_CONFIG["accessDir"]); + + +//------------------------------------------------------------------------ +// Install Cron job +//------------------------------------------------------------------------ +$m = '*/2'; +$h ='*'; +$dom = '*'; +$mon = '*'; +$dow = '*'; +$command = realpath("{$CC_CONFIG['cronDir']}/transportCron.php"); +$old_regex = '/transportCron\.php/'; +echo " * Install storageServer cron job...\n"; + +$cron = new Cron(); +$access = $cron->openCrontab('write'); +if ($access != 'write') { + do { + $r = $cron->forceWriteable(); + } while ($r); +} + +foreach ($cron->ct->getByType(CRON_CMD) as $id => $line) { + if (preg_match($old_regex, $line['command'])) { + echo " * Removing old entry: ".$line['command']."\n"; + $cron->ct->delEntry($id); + } +} +echo " * Adding new entry: ".$command."\n"; +$cron->ct->addCron($m, $h, $dom, $mon, $dow, $command); +$cron->closeCrontab(); +echo " Done.\n"; + +echo "*******************************\n"; +echo "* Campcaster Install Complete *\n"; +echo "*******************************\n"; + +?>