feat(legacy): consolidate constants (#1558)

* remove unused file

* fix paths leading slash

* remove useless imports

* refactor(legacy): use constants everywhere

* fix path leading slash

* remove useless import

* consolidate legacy contants

* format code

* reuse LIBRETIME_CONFIG_DIR

* fix test config path

* remove ci legacy log dir creation

* some logs improvements
This commit is contained in:
Jonas L 2022-02-04 11:00:41 +01:00 committed by GitHub
parent e106858fd8
commit 729a7b99e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 133 additions and 257 deletions

View File

@ -72,7 +72,6 @@ jobs:
runs-on: ${{ matrix.runs-on }}
env:
ENVIRONMENT: testing
LIBRETIME_LOG_DIR: /tmp/log/libretime
steps:
- uses: actions/checkout@v2
@ -103,10 +102,7 @@ jobs:
${{ runner.os }}-composer-
- name: Run tests
run: |
sudo mkdir -p "$LIBRETIME_LOG_DIR"
sudo chown runner:runner "$LIBRETIME_LOG_DIR"
make test
run: make test
working-directory: legacy
# Start lint the code without failing the entire workflow, should be merged

View File

@ -1,24 +1,23 @@
<?php
require_once CONFIG_PATH . 'conf.php';
require_once 'preload.php';
$CC_CONFIG = Config::getConfig();
require_once CONFIG_PATH . 'ACL.php';
require_once CONFIG_PATH . '/ACL.php';
// Since we initialize the database during the configuration check,
// check the $configRun global to avoid reinitializing unnecessarily
if (!isset($configRun) || !$configRun) {
Propel::init(CONFIG_PATH . 'airtime-conf-production.php');
Propel::init(PROPEL_CONFIG_FILEPATH);
}
require_once CONFIG_PATH . 'constants.php';
Logging::setLogPath(LIBRETIME_LOG_DIR . '/legacy.log');
Logging::setLogPath(LIBRETIME_LOG_FILEPATH);
Zend_Session::setOptions(['strict' => true]);
Config::setAirtimeVersion();
require_once CONFIG_PATH . 'navigation.php';
require_once CONFIG_PATH . '/navigation.php';
Zend_Validate::setDefaultNamespaces('Zend');

View File

@ -27,56 +27,46 @@ function exception_error_handler($errno, $errstr, $errfile, $errline)
set_error_handler('exception_error_handler');
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
defined('VERBOSE_STACK_TRACE')
|| define('VERBOSE_STACK_TRACE', (getenv('VERBOSE_STACK_TRACE') ? getenv('VERBOSE_STACK_TRACE') : true));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, [
get_include_path(),
realpath(LIB_PATH),
]));
set_include_path(APPLICATION_PATH . 'common' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . 'common/enum' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . 'common/interface' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/common' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/common/enum' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/common/interface' . PATH_SEPARATOR . get_include_path());
//Propel classes.
set_include_path(APPLICATION_PATH . 'models' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/models' . PATH_SEPARATOR . get_include_path());
//Controller plugins.
set_include_path(APPLICATION_PATH . 'controllers' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/controllers' . PATH_SEPARATOR . get_include_path());
//Controller plugins.
set_include_path(APPLICATION_PATH . 'controllers/plugins' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/controllers/plugins' . PATH_SEPARATOR . get_include_path());
//Services.
set_include_path(APPLICATION_PATH . '/services/' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/services' . PATH_SEPARATOR . get_include_path());
//cloud storage directory
set_include_path(APPLICATION_PATH . '/cloud_storage' . PATH_SEPARATOR . get_include_path());
//Upgrade directory
set_include_path(APPLICATION_PATH . '/upgrade/' . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/upgrade' . PATH_SEPARATOR . get_include_path());
//Common directory
set_include_path(APPLICATION_PATH . '/common/' . PATH_SEPARATOR . get_include_path());
//Composer's autoloader
require_once 'autoload.php';
set_include_path(APPLICATION_PATH . '/common' . PATH_SEPARATOR . get_include_path());
/** Zend_Application */
$application = new Zend_Application(
APPLICATION_ENV,
CONFIG_PATH . 'application.ini',
CONFIG_PATH . '/application.ini',
true
);
require_once APPLICATION_PATH . 'logging/Logging.php';
Logging::setLogPath(LIBRETIME_LOG_DIR . '/legacy.log');
require_once APPLICATION_PATH . '/logging/Logging.php';
Logging::setLogPath(LIBRETIME_LOG_FILEPATH);
Logging::setupParseErrorLogging();
// Create application, bootstrap, and run

View File

@ -17,7 +17,7 @@ class ProxyStorageBackend extends StorageBackend
{
$CC_CONFIG = Config::getConfig();
// The storage backend in the airtime.conf directly corresponds to
// The storage backend in the config file directly corresponds to
// the name of the class that implements it, so we can create the
// right backend object dynamically:
if ($storageBackend == 'file') {

View File

@ -5,7 +5,7 @@
/* The original name of this file is airtime-conf.php but since we need to make custom changes
* to it I've renamed it so that our changes aren't removed everytime we regenerate a database schema.
* our custom changes requires the database parameters to be loaded from /etc/airtime/airtime.conf so
* our custom changes requires the database parameters to be loaded from the config file so
* that the user can customize these.
*/

View File

@ -1,29 +1,18 @@
<?php
/* THIS FILE IS NOT MEANT FOR CUSTOMIZING.
* PLEASE EDIT THE FOLLOWING TO CHANGE YOUR CONFIG:
* LIBRETIME_CONF_DIR/airtime.conf
*/
require_once __DIR__ . '/constants.php';
// THIS FILE IS NOT MEANT FOR CUSTOMIZING.
class Config
{
private static $CC_CONFIG;
private static $rootDir;
public static function loadConfig()
{
self::$rootDir = __DIR__ . '/../..';
$CC_CONFIG = [
// ================================================ storage configuration
'rootDir' => self::$rootDir,
];
//In the unit testing environment, LIBRETIME_CONF_DIR will our local airtime.conf in legacy/application/test/conf:
$filename = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : LIBRETIME_CONF_DIR . '/airtime.conf';
$filename = $_SERVER['LIBRETIME_CONFIG_FILEPATH'] ?? LIBRETIME_CONFIG_FILEPATH;
$values = parse_ini_file($filename, true);
$CC_CONFIG = [];
// Name of the web server user
$CC_CONFIG['webServerUser'] = $values['general']['web_server_user'];
$CC_CONFIG['rabbitmq'] = $values['rabbitmq'];
@ -97,7 +86,7 @@ class Config
public static function setAirtimeVersion()
{
$version = @file_get_contents(self::$rootDir . '/../VERSION');
$version = @file_get_contents(dirname(ROOT_PATH) . '/VERSION');
if (!$version) {
// fallback to constant from constants.php if no other info is available
$version = LIBRETIME_MAJOR_VERSION;

View File

@ -140,7 +140,7 @@ $result = $r1 && $r2;
?>">
Make sure you aren't missing any of the Postgres dependencies in the table above.
If your dependencies check out, make sure your database configuration settings in
<code>/etc/airtime.conf</code> are correct and the Airtime database was installed correctly.
<code><?php echo LIBRETIME_CONFIG_FILEPATH; ?></code> are correct and the Airtime database was installed correctly.
<?php
}
?>
@ -158,7 +158,7 @@ $result = $r1 && $r2;
<?php
} else {
?>">
Make sure RabbitMQ is installed correctly, and that your settings in /etc/airtime/airtime.conf
Make sure RabbitMQ is installed correctly, and that your settings in <?php echo LIBRETIME_CONFIG_FILEPATH; ?>
are correct. Try using <code>sudo rabbitmqctl list_users</code> and <code>sudo rabbitmqctl list_vhosts</code>
to see if the airtime user (or your custom RabbitMQ user) exists, then checking that
<code>sudo rabbitmqctl list_exchanges</code> contains entries for airtime-pypo and airtime-uploads.

View File

@ -1,5 +1,34 @@
<?php
// Path constants
define('ROOT_PATH', dirname(__DIR__, 2));
define('LIB_PATH', ROOT_PATH . '/library');
define('BUILD_PATH', ROOT_PATH . '/build');
define('SETUP_PATH', BUILD_PATH . '/airtime-setup');
define('APPLICATION_PATH', ROOT_PATH . '/application');
define('CONFIG_PATH', APPLICATION_PATH . '/configs');
define('VENDOR_PATH', ROOT_PATH . '/vendor');
define('SAMPLE_CONFIG_FILEPATH', BUILD_PATH . '/airtime.example.conf');
define('PROPEL_CONFIG_FILEPATH', CONFIG_PATH . '/airtime-conf-production.php');
// Define application environment
defined('APPLICATION_ENV') || define('APPLICATION_ENV', getenv('APPLICATION_ENV') ?: 'production');
defined('VERBOSE_STACK_TRACE') || define('VERBOSE_STACK_TRACE', getenv('VERBOSE_STACK_TRACE') ?? true);
// Project constants
define('LIBRETIME_LOG_DIR', getenv('LIBRETIME_LOG_DIR') ?: '/var/log/libretime');
define('LIBRETIME_LOG_FILEPATH', getenv('LIBRETIME_LOG_FILEPATH') ?: LIBRETIME_LOG_DIR . '/legacy.log');
define('LIBRETIME_CONFIG_DIR', getenv('LIBRETIME_CONFIG_DIR') ?: '/etc/airtime');
define('LIBRETIME_CONF_DIR', LIBRETIME_CONFIG_DIR); // Deprecated
define('LIBRETIME_CONFIG_FILEPATH', getenv('LIBRETIME_CONFIG_FILEPATH') ?: LIBRETIME_CONFIG_DIR . '/airtime.conf');
// Installer
define('INSTALLER_CONFIG_FILEPATH', LIBRETIME_CONFIG_DIR . '/airtime.conf.temp');
define('INSTALLER_DEFAULT_STORAGE_PATH', '/srv/libretime/storage');
// Legacy constants
define('PRODUCT_NAME', 'LibreTime');
define('PRODUCT_SITE_URL', 'http://libretime.org');
@ -34,10 +63,6 @@ define('AIRTIME_API_VERSION', '1.1');
// XXX: it's important that we upgrade this on major version bumps, usually users get more exact info from VERSION in airtime root dir
define('LIBRETIME_MAJOR_VERSION', '3');
// grab values from env (i'll do this everywhere with a small function if we like it)
define('LIBRETIME_CONF_DIR', getenv('LIBRETIME_CONF_DIR') ? getenv('LIBRETIME_CONF_DIR') : '/etc/airtime');
define('LIBRETIME_LOG_DIR', getenv('LIBRETIME_LOG_DIR') ? getenv('LIBRETIME_LOG_DIR') : '/var/log/libretime');
// Defaults
define('DEFAULT_LOGO_PLACEHOLDER', 1);
define('DEFAULT_LOGO_FILE', 'images/airtime_logo.png');
@ -106,9 +131,6 @@ define('UI_PLAYLISTCONTROLLER_OBJ_SESSNAME', 'PLAYLISTCONTROLLER_OBJ');
/*define('UI_PLAYLIST_SESSNAME', 'PLAYLIST');
define('UI_BLOCK_SESSNAME', 'BLOCK');*/
//Sentry error logging
define('SENTRY_CONFIG_PATH', LIBRETIME_CONF_DIR . '/sentry.airtime_web.ini');
//TuneIn integration
define('TUNEIN_API_URL', 'http://air.radiotime.com/Playing.ashx');

View File

@ -1,10 +0,0 @@
<?php
/* This file is only needed during upgrades when we need the database parameters from /etc/airtime/airtime.conf.
* The reason we don't just use conf.php is because conf.php may try to load configuration parameters that aren't
* yet available because airtime.conf hasn't been updated yet. This situation ends up throwing a lot of errors to stdout.
* airtime*/
require_once 'conf.php';
$CC_CONFIG = Config::getConfig();

View File

@ -241,7 +241,7 @@ class PageLayoutInitPlugin extends Zend_Controller_Plugin_Abstract
protected function _initViewHelpers()
{
$view = $this->_bootstrap->getResource('view');
$view->addHelperPath(APPLICATION_PATH . 'views/helpers', 'Airtime_View_Helper');
$view->addHelperPath(APPLICATION_PATH . '/views/helpers', 'Airtime_View_Helper');
}
protected function _initTitle()

View File

@ -64,7 +64,7 @@
<?php echo _("Dashboard") ?>
</a>
</div>
<?php $subnavPrefix = "/showbuilder"; require_once APPLICATION_PATH . "views/scripts/partialviews/dashboard-sub-nav.php"; ?>
<?php $subnavPrefix = "/showbuilder"; require_once APPLICATION_PATH . "/views/scripts/partialviews/dashboard-sub-nav.php"; ?>
<div class="media_type_selector dashboard_sub_nav" data-selection-id="<?php echo MediaType::PODCAST ?>">
<a href="<?php echo $subnavPrefix; ?>#podcasts">
<span class="selector-name"><i class='icon-headphones icon-white'></i><?php echo _("Podcasts") ?></span>

View File

@ -8,7 +8,7 @@ class Rest_PodcastController extends Zend_Rest_Controller
// Remove reliance on .phtml files to render requests
$this->_helper->viewRenderer->setNoRender(true);
$this->view->setScriptPath(APPLICATION_PATH . 'views/scripts/');
$this->view->setScriptPath(APPLICATION_PATH . '/views/scripts/');
}
/**

View File

@ -0,0 +1,7 @@
<?php
require_once __DIR__ . '/configs/constants.php';
require_once VENDOR_PATH . '/autoload.php';
require_once CONFIG_PATH . '/conf.php';

View File

@ -1,7 +1,7 @@
<div><!-- jQuery UI changes the styling on the outermost div; use a blank div so as not to break the .wrapper styling-->
<div class="wrapper">
<div id="media_selector_wrapper">
<?php $subnavPrefix = ""; require_once APPLICATION_PATH . "views/scripts/partialviews/dashboard-sub-nav.php"; ?>
<?php $subnavPrefix = ""; require_once APPLICATION_PATH . "/views/scripts/partialviews/dashboard-sub-nav.php"; ?>
</div>
<?php echo $this->csrf ?>

View File

@ -1,9 +1,9 @@
<?php
$tempConfigPath = '/etc/airtime/airtime.conf.tmp';
if (file_exists($tempConfigPath)) {
$tempConfigPath = INSTALLER_CONFIG_FILEPATH;
if (file_exists($tempConfigPath)) {
$airtimeConfig = parse_ini_file($tempConfigPath, true);
$db = $airtimeConfig['database'];
}
}
?>
<form action="#" role="form" id="dbSettingsForm">

View File

@ -11,16 +11,16 @@
sudo systemctl start libretime-api
sudo systemctl start libretime-celery
sudo systemctl start libretime-liquidsoap
sudo systemctl start libretime-playout</pre
sudo systemctl start libretime-playout</pre>
<p>
Click "Done!" to bring up the Libretime configuration checklist; if your configuration is all green,
you're ready to get started with your personal Libretime station!
</p>
<p>
If you need to re-run the web installer, just remove <code>/etc/airtime/airtime.conf</code>.
If you need to re-run the web installer, just remove <code><?php echo LIBRETIME_CONFIG_FILEPATH; ?></code>.
</p>
<div>
<input type="submit" formtarget="finishSettingsForm" class="btn btn-primary btn-next" value="Done!"/>
<input type="submit" formtarget="finishSettingsForm" class="btn btn-primary btn-next" value="Done!" />
</div>
</form>

View File

@ -1,9 +1,9 @@
<?php
$tempConfigPath = '/etc/airtime/airtime.conf.tmp';
if (file_exists($tempConfigPath)) {
$tempConfigPath = INSTALLER_CONFIG_FILEPATH;
if (file_exists($tempConfigPath)) {
$airtimeConfig = parse_ini_file($tempConfigPath, true);
$rmq = $airtimeConfig['rabbitmq'];
}
}
?>
<form action="#" role="form" id="rmqSettingsForm">

View File

@ -92,7 +92,7 @@ function checkDatabaseConfiguration()
*/
function configureDatabase()
{
Propel::init(CONFIG_PATH . 'airtime-conf-production.php');
Propel::init(PROPEL_CONFIG_FILEPATH);
}
/**
@ -102,11 +102,11 @@ function configureDatabase()
*/
function checkRMQConnection()
{
// Check for airtime.conf in /etc/airtime/ first, then check in the build directory,
if (file_exists(AIRTIME_CONFIG_STOR . AIRTIME_CONFIG)) {
$ini = parse_ini_file(AIRTIME_CONFIG_STOR . AIRTIME_CONFIG, true);
// Check for installed config file first, then check in the build directory,
if (file_exists(LIBRETIME_CONFIG_FILEPATH)) {
$ini = parse_ini_file(LIBRETIME_CONFIG_FILEPATH, true);
} else {
$ini = parse_ini_file(BUILD_PATH . 'airtime.example.conf', true);
$ini = parse_ini_file(SAMPLE_CONFIG_FILEPATH, true);
}
$conn = new \PhpAmqpLib\Connection\AMQPStreamConnection(

View File

@ -1,4 +1,7 @@
<?php
require_once dirname(__DIR__, 2) . '/application/preload.php';
?>
<html>
@ -23,27 +26,27 @@
<div class="form-slider">
<div id="databaseSettings" class="form-wrapper">
<?php
require_once SETUP_PATH . 'forms/database-settings.php';
require_once SETUP_PATH . '/forms/database-settings.php';
?>
</div>
<div id="rabbitmqSettings" class="form-wrapper">
<?php
require_once SETUP_PATH . 'forms/rabbitmq-settings.php';
require_once SETUP_PATH . '/forms/rabbitmq-settings.php';
?>
</div>
<div id="generalSettings" class="form-wrapper">
<?php
require_once SETUP_PATH . 'forms/general-settings.php';
require_once SETUP_PATH . '/forms/general-settings.php';
?>
</div>
<div id="mediaSettings" class="form-wrapper">
<?php
require_once SETUP_PATH . 'forms/media-settings.php';
require_once SETUP_PATH . '/forms/media-settings.php';
?>
</div>
<div id="finishSettings" class="form-wrapper">
<?php
require_once SETUP_PATH . 'forms/finish-settings.php';
require_once SETUP_PATH . '/forms/finish-settings.php';
?>
</div>
</div>

View File

@ -1,5 +1,7 @@
<?php
require_once dirname(__DIR__) . '/application/preload.php';
$configRun = false;
$extensions = get_loaded_extensions();
$airtimeSetup = false;
@ -13,7 +15,7 @@ function showConfigCheckPage()
checkConfiguration();
}
require_once CONFIG_PATH . 'config-check.php';
require_once CONFIG_PATH . '/config-check.php';
exit();
}
@ -25,38 +27,20 @@ function isApiCall()
return strpos($path, 'api') !== false;
}
// Define application path constants
define('ROOT_PATH', dirname(__DIR__) . '/');
define('LIB_PATH', ROOT_PATH . 'library/');
define('BUILD_PATH', ROOT_PATH . 'build/');
define('SETUP_PATH', BUILD_PATH . 'airtime-setup/');
define('APPLICATION_PATH', ROOT_PATH . 'application/');
define('CONFIG_PATH', APPLICATION_PATH . 'configs/');
define('VENDOR_PATH', ROOT_PATH . 'vendor/');
define('REST_MODULE_CONTROLLER_PATH', APPLICATION_PATH . 'modules/rest/controllers/');
define('AIRTIME_CONFIG_STOR', '/etc/airtime/');
define('AIRTIME_CONFIG', 'airtime.conf');
//Rest Module Controllers - for custom Rest_RouteController.php
set_include_path(REST_MODULE_CONTROLLER_PATH . PATH_SEPARATOR . get_include_path());
set_include_path(APPLICATION_PATH . '/modules/rest/controllers/' . PATH_SEPARATOR . get_include_path());
// Vendors (Composer, zend-loader is explicitly specified due to https://github.com/zf1/zend-application/pull/2#issuecomment-102599655)
set_include_path(VENDOR_PATH . PATH_SEPARATOR . VENDOR_PATH . 'zf1s/zend-loader/library/' . PATH_SEPARATOR . get_include_path());
set_include_path(VENDOR_PATH . PATH_SEPARATOR . VENDOR_PATH . '/zf1s/zend-loader/library/' . PATH_SEPARATOR . get_include_path());
// Ensure library/ is on include_path
set_include_path(LIB_PATH . PATH_SEPARATOR . get_include_path());
require_once VENDOR_PATH . 'autoload.php';
if (!class_exists('Propel')) {
exit('Error: Propel not found. Did you install Airtime\'s third-party dependencies with composer? (Check the README.)');
}
require_once CONFIG_PATH . 'conf.php';
require_once SETUP_PATH . 'load.php';
require_once SETUP_PATH . '/load.php';
// This allows us to pass ?config as a parameter to any page
// and get to the config checklist.
@ -64,16 +48,13 @@ if (array_key_exists('config', $_GET)) {
showConfigCheckPage();
}
$filename = isset($_SERVER['AIRTIME_CONF']) ?
$_SERVER['AIRTIME_CONF'] : AIRTIME_CONFIG_STOR . AIRTIME_CONFIG;
// If a configuration file exists, forward to our boot script
if (file_exists($filename)) {
require_once APPLICATION_PATH . 'airtime-boot.php';
if (file_exists(LIBRETIME_CONFIG_FILEPATH)) {
require_once APPLICATION_PATH . '/airtime-boot.php';
}
// Otherwise, we'll need to run our configuration setup
else {
$airtimeSetup = true;
require_once SETUP_PATH . 'setup-config.php';
require_once SETUP_PATH . '/setup-config.php';
}

View File

@ -8,7 +8,7 @@
*/
class DatabaseSetup extends Setup
{
// airtime.conf section header
// config file section header
protected static $_section = '[database]';
// Constant form field names for passing errors back to the front-end
@ -17,7 +17,7 @@ class DatabaseSetup extends Setup
public const DB_NAME = 'dbName';
public const DB_HOST = 'dbHost';
// Array of key->value pairs for airtime.conf
// Array of key->value pairs for the config file
protected static $_properties;
/**
@ -294,6 +294,6 @@ class DatabaseSetup extends Setup
*/
private function updateDjangoTables()
{
shell_exec('LIBRETIME_CONFIG_FILEPATH=/etc/airtime/airtime.conf.temp libretime-api migrate');
shell_exec('LIBRETIME_CONFIG_FILEPATH=' . INSTALLER_CONFIG_FILEPATH . ' libretime-api migrate');
}
}

View File

@ -1,25 +1,5 @@
<?php
define('CONFIG_PATH', dirname(__DIR__, 2) . '/application/configs/');
require_once dirname(__DIR__, 2) . '/vendor/jooola/propel1/runtime/lib/Propel.php';
require_once CONFIG_PATH . 'conf.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/CcPref.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/CcPrefPeer.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/CcPrefQuery.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/map/CcPrefTableMap.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/om/BaseCcPref.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/om/BaseCcPrefPeer.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/om/BaseCcPrefQuery.php';
/**
* User: sourcefabric
* Date: 08/12/14.
@ -30,10 +10,10 @@ require_once dirname(__DIR__, 2) . '/application/models/airtime/om/BaseCcPrefQue
*/
class GeneralSetup extends Setup
{
// airtime.conf section header
// config file section header
protected static $_section = '[general]';
// Array of key->value pairs for airtime.conf
// Array of key->value pairs for the config file
protected static $_properties;
// Constant form field names for passing errors back to the front-end
@ -86,8 +66,8 @@ class GeneralSetup extends Setup
public function setupCorsUrl()
{
try {
$_SERVER['AIRTIME_CONF'] = AIRTIME_CONF_TEMP_PATH;
Propel::init(CONFIG_PATH . 'airtime-conf-production.php');
$_SERVER['LIBRETIME_CONFIG_FILEPATH'] = INSTALLER_CONFIG_FILEPATH;
Propel::init(PROPEL_CONFIG_FILEPATH);
$con = Propel::getConnection();
} catch (Exception $e) {
self::$message = "Failed to insert Cors URL; database isn't configured properly!";
@ -104,7 +84,6 @@ class GeneralSetup extends Setup
try {
Application_Model_Preference::SetAllowedCorsUrls(self::$cors_url);
Propel::close();
//unset($_SERVER['AIRTIME_CONF']);
} catch (Exception $e) {
self::$message = 'Failed to insert ' . self::$cors_url . ' into cc_pref' . $e;
self::$errors[] = self::CORS_URL;

View File

@ -1,26 +1,5 @@
<?php
define('CONFIG_PATH', dirname(__DIR__, 2) . '/application/configs/');
define('DEFAULT_STOR_DIR', '/srv/airtime/stor/');
require_once dirname(__DIR__, 2) . '/vendor/jooola/propel1/runtime/lib/Propel.php';
require_once CONFIG_PATH . 'conf.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/map/CcMusicDirsTableMap.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/om/BaseCcMusicDirsQuery.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/CcMusicDirsQuery.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/om/BaseCcMusicDirs.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/CcMusicDirs.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/om/BaseCcMusicDirsPeer.php';
require_once dirname(__DIR__, 2) . '/application/models/airtime/CcMusicDirsPeer.php';
/**
* Author: sourcefabric
* Date: 08/12/14.
@ -32,7 +11,6 @@ require_once dirname(__DIR__, 2) . '/application/models/airtime/CcMusicDirsPeer.
class MediaSetup extends Setup
{
public const MEDIA_FOLDER = 'mediaFolder';
public const LIBRETIME_CONF_FILE_NAME = 'airtime.conf';
public static $path;
public static $message;
@ -50,9 +28,9 @@ class MediaSetup extends Setup
{
// If the path passed in is empty, set it to the default
if (strlen(self::$path) == 0) {
self::$path = DEFAULT_STOR_DIR;
if (!file_exists(DEFAULT_STOR_DIR)) {
mkdir(DEFAULT_STOR_DIR, 0755, true);
self::$path = INSTALLER_DEFAULT_STORAGE_PATH;
if (!file_exists(INSTALLER_DEFAULT_STORAGE_PATH)) {
mkdir(INSTALLER_DEFAULT_STORAGE_PATH, 0755, true);
}
}
@ -68,10 +46,10 @@ class MediaSetup extends Setup
self::$errors[] = self::MEDIA_FOLDER;
}
// Finalize and move airtime.conf.temp
if (file_exists('/etc/airtime/')) {
// Finalize and move installer config file to libretime config file
if (file_exists(LIBRETIME_CONFIG_DIR)) {
if (!$this->moveAirtimeConfig()) {
self::$message = 'Error moving airtime.conf or deleting /tmp/airtime.conf.temp!';
self::$message = 'Error moving or deleting the installer config!';
self::$errors[] = 'ERR';
}
@ -80,7 +58,7 @@ class MediaSetup extends Setup
* airtime.conf to airtime.conf.tmp during the setup process. Now that we're done,
* we can rename it to airtime.conf.bak to avoid confusion.
*/
$fileName = LIBRETIME_CONF_DIR . '/' . self::LIBRETIME_CONF_FILE_NAME;
$fileName = LIBRETIME_CONFIG_FILEPATH;
$tmpFile = $fileName . '.tmp';
$bakFile = $fileName . '.bak';
if (file_exists($tmpFile)) {
@ -104,8 +82,8 @@ class MediaSetup extends Setup
*/
public function moveAirtimeConfig()
{
return copy(AIRTIME_CONF_TEMP_PATH, LIBRETIME_CONF_DIR . '/' . self::LIBRETIME_CONF_FILE_NAME)
&& unlink(AIRTIME_CONF_TEMP_PATH);
return copy(INSTALLER_CONFIG_FILEPATH, LIBRETIME_CONFIG_FILEPATH)
&& unlink(INSTALLER_CONFIG_FILEPATH);
}
/**
@ -115,8 +93,8 @@ class MediaSetup extends Setup
public function setupMusicDirectory()
{
try {
$_SERVER['AIRTIME_CONF'] = AIRTIME_CONF_TEMP_PATH;
Propel::init(CONFIG_PATH . 'airtime-conf-production.php');
$_SERVER['LIBRETIME_CONFIG_FILEPATH'] = INSTALLER_CONFIG_FILEPATH;
Propel::init(PROPEL_CONFIG_FILEPATH);
$con = Propel::getConnection();
} catch (Exception $e) {
self::$message = "Failed to insert media folder; database isn't configured properly!";

View File

@ -1,13 +1,6 @@
<?php
define('BUILD_PATH', dirname(__DIR__, 2) . '/build/');
define('AIRTIME_CONF_TEMP_PATH', '/etc/airtime/airtime.conf.temp');
define('RMQ_INI_TEMP_PATH', '/tmp/rabbitmq.ini.tmp');
// load autoloader since this files is an entry path see
// the end of the file for the "server" that is being
// executed.
require_once __DIR__ . '/../../vendor/autoload.php';
require_once dirname(__DIR__, 2) . '/application/preload.php';
/**
* Class Setup.
@ -36,11 +29,11 @@ abstract class Setup
*/
protected function writeToTemp()
{
if (!file_exists(AIRTIME_CONF_TEMP_PATH)) {
copy(BUILD_PATH . 'airtime.example.conf', AIRTIME_CONF_TEMP_PATH);
if (!file_exists(INSTALLER_CONFIG_FILEPATH)) {
copy(SAMPLE_CONFIG_FILEPATH, INSTALLER_CONFIG_FILEPATH);
}
//Logging::info(AIRTIME_CONF_TEMP_PATH);
$this->_write(AIRTIME_CONF_TEMP_PATH);
//Logging::info(CONFIG_TEMP_FILEPATH);
$this->_write(INSTALLER_CONFIG_FILEPATH);
}
protected function _write($filePath)

View File

@ -2,19 +2,7 @@
error_reporting(E_ALL | E_STRICT);
// load composer autoloader
require_once __DIR__ . '/../../vendor/autoload.php';
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../application/'));
// Define path to configs directory
define('CONFIG_PATH', APPLICATION_PATH . '/configs/');
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing'));
require_once dirname(__DIR__, 2) . '/application/preload.php';
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, [
@ -46,9 +34,7 @@ set_include_path(implode(PATH_SEPARATOR, [
realpath(APPLICATION_PATH . '/../../install_minimal/include'),
]));
require_once CONFIG_PATH . '/constants.php';
Logging::setLogPath(LIBRETIME_LOG_DIR . '/legacy.log');
Logging::setLogPath(LIBRETIME_LOG_FILEPATH);
set_include_path(APPLICATION_PATH . '/common' . PATH_SEPARATOR . get_include_path());
@ -76,8 +62,6 @@ set_include_path(APPLICATION_PATH . '/../tests/application/helpers' . PATH_SEPAR
//cloud storage files
set_include_path(APPLICATION_PATH . '/cloud_storage' . PATH_SEPARATOR . get_include_path());
require_once APPLICATION_PATH . '/configs/conf.php';
require_once 'jooola/propel1/runtime/lib/Propel.php';
Propel::init('../application/configs/airtime-conf-production.php');

View File

@ -1,7 +1,5 @@
<?php
require_once '../application/configs/conf.php';
/**
* @internal
* @coversNothing

View File

@ -130,7 +130,7 @@ class TestHelper
public static function setupZendBootstrap()
{
$application = new Zend_Application(APPLICATION_ENV, CONFIG_PATH . 'application.ini');
$application = new Zend_Application(APPLICATION_ENV, CONFIG_PATH . '/application.ini');
$application->bootstrap();
return $application;

View File

@ -1,7 +1,5 @@
<?php
//require_once "../application/configs/conf.php";
/**
* @internal
* @coversNothing

View File

@ -1,7 +1,5 @@
<?php
require_once '../application/configs/conf.php';
/**
* @internal
* @coversNothing

View File

@ -1,7 +1,5 @@
<?php
//require_once "../application/configs/conf.php";
/**
* @internal
* @coversNothing

View File

@ -1,28 +0,0 @@
[database]
host = localhost
dbname = libretime_test
dbuser = libretime
dbpass = libretime
[rabbitmq]
host = 127.0.0.1
port = 5672
user = airtime_tests
password = airtime_tests
vhost = /airtime_tests
[general]
dev_env = testing
api_key = H2NRICX6CM8F50CU123C
web_server_user = www-data
airtime_dir = /usr/share/airtime
base_url = localhost
base_port = 80
base_dir = /
cache_ahead_hours = 1
station_id = teststation
[monit]
monit_user = guest
monit_password = airtime

View File

@ -16,8 +16,9 @@
<php>
<env name="ENVIRONMENT" value="testing" />
<env name="AIRTIME_UNIT_TEST" value="1" />
<env name="LIBRETIME_CONF_DIR" value="./conf" />
<env name="APPLICATION_ENV" value="testing" />
<env name="LIBRETIME_UNIT_TEST" value="1" />
<env name="LIBRETIME_CONFIG_DIR" value="./config" />
<env name="LIBRETIME_LOG_DIR" value="./log" />
</php>

View File

@ -26,7 +26,7 @@ export RABBITMQ_USER
export RABBITMQ_PASSWORD
export RABBITMQ_VHOST
export AIRTIME_UNIT_TEST="1"
export LIBRETIME_UNIT_TEST="1"
#Change the working directory to this script's directory
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" && pwd)"