Portions created by the Initial Developer are Copyright (C) 2008-2023 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ /** * scripts class provides methods for creating the config.lua and copying switch scripts * * @method string correct_path * @method string copy_files * @method string write_config */ if (!class_exists('scripts')) { class scripts { public $db; public $db_type; public $db_name; public $db_secure; public $db_cert_authority; public $db_host; public $db_port; public $db_path; public $db_username; public $db_password; public $dsn_name; public $dsn_username; public $dsn_password; /** * Called when the object is created */ public function __construct() { //get database properties $database = new database; $database->connect(); $this->db = $database->db; $this->db_type = $database->type; $this->db_name = $database->db_name; $this->db_host = $database->host; $this->db_port = $database->port; $this->db_path = $database->path; $this->db_secure = $database->db_secure; $this->db_cert_authority = $database->db_cert_authority; $this->db_username = $database->username; $this->db_password = $database->password; } /** * Corrects the path for specifically for windows */ private function correct_path($path) { global $IS_WINDOWS; if ($IS_WINDOWS == null) { if (stristr(PHP_OS, 'WIN')) { $IS_WINDOWS = true; } else { $IS_WINDOWS = false; } } if ($IS_WINDOWS) { return str_replace('\\', '/', $path); } return $path; } /** * Copy the switch scripts from the web directory to the switch directory */ public function copy_files() { //read the config.conf settings $config_glob = glob("{/usr/local/etc,/etc}/fusionpbx/config.conf", GLOB_BRACE); $conf = parse_ini_file($config_glob[0]); if (!empty($conf['switch.scripts.dir'])) { $destination_directory = $conf['switch.scripts.dir']; if ($destination_directory != '' && file_exists($destination_directory)) { //get the source directory if (file_exists('/usr/share/examples/fusionpbx/scripts')) { $source_directory = '/usr/share/examples/fusionpbx/scripts'; } else { $source_directory = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/app/scripts/resources/scripts'; } if (is_readable($source_directory)) { //copy the main scripts recursive_copy($source_directory, $destination_directory); unset($source_directory); //copy the app/*/resource/install/scripts $app_scripts = glob($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'app/*/resource/scripts'); foreach ($app_scripts as $app_script) { recursive_copy($app_script, $destination_directory); } unset($app_scripts); } else { throw new Exception("Cannot read from '$source_directory' to get the scripts"); } chmod($destination_directory, 0775); unset($destination_directory); } } } } } /* //example use //update config.lua $obj = new scripts; $obj->copy_files(); */ ?>