diff options
author | Steve Clay <steve@mrclay.org> | 2012-11-09 14:21:48 -0800 |
---|---|---|
committer | Steve Clay <steve@mrclay.org> | 2012-11-09 14:21:48 -0800 |
commit | 9b714e32ad6bddbaddbbf278fa82dbb3308bb412 (patch) | |
tree | 503af37ad91aa7dec923f4cfb4ed8a4fbbbbcf9e /install | |
parent | b2232139f13b759e8f5ce62def75eaeaa530a5b6 (diff) | |
parent | 5451dac903ba5279d12cb402a64e22483a1f1cd1 (diff) | |
download | elgg-9b714e32ad6bddbaddbbf278fa82dbb3308bb412.tar.gz elgg-9b714e32ad6bddbaddbbf278fa82dbb3308bb412.tar.bz2 |
Merge pull request #428 from mrclay/cli-fix-18
CLI installer: enable/auto disable, check for empty config values
Diffstat (limited to 'install')
-rw-r--r-- | install/ElggInstaller.php | 2 | ||||
-rw-r--r-- | install/cli/sample_installer.php | 35 |
2 files changed, 36 insertions, 1 deletions
diff --git a/install/ElggInstaller.php b/install/ElggInstaller.php index 03c84a43e..934b38d28 100644 --- a/install/ElggInstaller.php +++ b/install/ElggInstaller.php @@ -157,7 +157,7 @@ class ElggInstaller { 'password', ); foreach ($requiredParams as $key) { - if (!array_key_exists($key, $params)) { + if (empty($params[$key])) { $msg = elgg_echo('install:error:requiredfield', array($key)); throw new InstallationException($msg); } diff --git a/install/cli/sample_installer.php b/install/cli/sample_installer.php index 954169a6a..0bae0cd23 100644 --- a/install/cli/sample_installer.php +++ b/install/cli/sample_installer.php @@ -3,10 +3,27 @@ * Sample cli installer script */ +$enabled = false; + +// Do not edit below this line. ////////////////////////////// + + +if (!$enabled) { + echo "To enable this script, change \$enabled to true.\n"; + echo "You *must* disable this script after a successful installation.\n"; + exit; +} + +if (PHP_SAPI !== 'cli') { + echo "You must use the command line to run this script."; + exit; +} + require_once(dirname(dirname(__FILE__)) . "/ElggInstaller.php"); $installer = new ElggInstaller(); +// none of the following may be empty $params = array( // database parameters 'dbuser' => '', @@ -28,3 +45,21 @@ $params = array( // install and create the .htaccess file $installer->batchInstall($params, TRUE); + +// at this point installation has completed (otherwise an exception halted execution). + +// try to rewrite the script to disable it. +if (is_writable(__FILE__)) { + $code = file_get_contents(__FILE__); + if (preg_match('~\\$enabled\\s*=\\s*(true|1)\\s*;~i', $code)) { + // looks safe to rewrite + $code = preg_replace('~\\$enabled\\s*=\\s*(true|1)\\s*;~i', '$enabled = false;', $code); + file_put_contents(__FILE__, $code); + + echo "\nNote: This script has been disabled for your safety.\n"; + exit; + } +} + +echo "\nWarning: You *must* disable this script by setting \$enabled = false;.\n"; +echo "Leaving this script enabled could endanger your installation.\n"; |