summaryrefslogtreecommitdiff
path: root/installer
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-01-10 20:47:38 +0000
committerTim Almdal <tnalmdal@shaw.ca>2009-01-10 20:47:38 +0000
commit4c330e5a99567e7ce44353a9bba111c915752f1e (patch)
treed4bf0c07091d22e2dd2cdd9b6e6c302b5dd7c048 /installer
parente45bbf57e88b06bf9783ffc47a952a3dee5052ec (diff)
Continuing baby steps to a batch installer. At this point you can run the installer and it will parse the command line arguments.
currently the following arguments are accepted -h(database host) -u(database user) -p(database password) -d(database name) -t(table prefex) or -f(a response file). The order of processing, defaults are set. if the response file is provided, the contained values are merged and finally any command line parameters are merged.
Diffstat (limited to 'installer')
-rw-r--r--installer/helpers/installer.php (renamed from installer/helpers/system_check.php)54
-rw-r--r--installer/install.php69
2 files changed, 121 insertions, 2 deletions
diff --git a/installer/helpers/system_check.php b/installer/helpers/installer.php
index b0bd7e12..2c7e39ff 100644
--- a/installer/helpers/system_check.php
+++ b/installer/helpers/installer.php
@@ -17,9 +17,10 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
-class system_check {
+class installer {
private static $messages = array();
-
+ private static $config = array();
+
public function failed() {
$failed = false;
if (version_compare(PHP_VERSION, "5.2", "<")) {
@@ -154,6 +155,55 @@ class system_check {
}
}
+/* -h Database host (default: localhost)
+ * -u Database user (default: root)
+ * -p Database user password (default: )
+ * -d Database name (default: gallery3)
+ * -t Table prefix (default: )
+ * -f Response file (default: not used)
+ * The response file is a php file that contains the following syntax;
+ * $config[key] = value;
+ * Where key is one of "host", "user", "password", "dbname", "prefix". Values specified
+ * on the command line will override values contained in this file
+ */
+ public function parse_cli_parms($argv) {
+ for ($i=0; $i < count($argv); $i++) {
+ switch (strtolower($argv[$i])) {
+ case "-d":
+ $arguments["dbname"] = $argv[++$i];
+ break;
+ case "-h":
+ $arguments["host"] = $argv[++$i];
+ break;
+ case "-u":
+ $arguments["user"] = $argv[++$i];
+ break;
+ case "-p":
+ $arguments["password"] = $argv[++$i];
+ break;
+ case "-t":
+ $arguments["prefix"] = $argv[++$i];
+ break;
+ case "-f":
+ $arguments["file"] = $argv[++$i];
+ break;
+ }
+ }
+
+ $config = array("host" => "localhost", "user" => "root", "password" => "",
+ "dbname" => "gallery3", "prefix" => "");
+
+ if (!empty($arguments["file"])) {
+ if (file_exists($arguments["file"])) {
+ include $arguments["file"];
+ }
+ unset($arguments["file"]);
+ }
+ self::$config = array_merge($config, $arguments);
+
+ var_dump(self::$config);
+ }
+
private static function _render($view) {
if ($view == '')
return;
diff --git a/installer/install.php b/installer/install.php
new file mode 100644
index 00000000..edb571a5
--- /dev/null
+++ b/installer/install.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 Bharat Mediratta
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * Batch Install program this is to only be run from the command line. The web interface uses
+ * a different approach to invoking the installer
+ * Command line parameters:
+ * -h Database host (default: localhost)
+ * -u Database user (default: root)
+ * -p Database user password (default: )
+ * -d Database name (default: gallery3)
+ * -t Table prefix (default: )
+ * -f Response file (default: not used)
+ * The response file is a php file that contains the following syntax;
+ * $config[key] = value;
+ * Where key is one of "host", "user", "password", "dbname", "prefix". Values specified
+ * on the command line will override values contained in this file
+ */
+
+if (PHP_SAPI != 'cli') {
+ $redirect = str_replace("install.php", "index.php", $_SERVER["REQUEST_URI"]);
+
+ header("Location: $redirect");
+ return;
+}
+
+if (file_exists('var')) {
+ dir("Gallery3 is already installed... exiting");
+}
+
+array_shift($argv); // remove the script name from the arguments
+
+define("DOCROOT", dirname(dirname(__FILE__)));
+chdir(DOCROOT);
+define('APPPATH', strtr(realpath('core') . '/', DIRECTORY_SEPARATOR, '/'));
+define('MODPATH', strtr(realpath('modules') . '/', DIRECTORY_SEPARATOR, '/'));
+define('THEMEPATH', strtr(realpath('themes') . '/', DIRECTORY_SEPARATOR, '/'));
+define('SYSPATH', strtr(realpath('kohana') . '/', DIRECTORY_SEPARATOR, '/'));
+define('EXT', ".php");
+
+include DOCROOT . "/installer/helpers/installer.php";
+
+// @todo Log the results of failed call
+if (installer::failed()) {
+ installer::display_requirements();
+ die;
+}
+installer::display_requirements();
+
+$install_config = installer::parse_cli_parms($argv);
+
+