diff options
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"; | 
