diff options
-rw-r--r-- | index.php | 6 | ||||
-rw-r--r-- | installer/helpers/installer.php (renamed from installer/helpers/system_check.php) | 54 | ||||
-rw-r--r-- | installer/install.php | 69 |
3 files changed, 124 insertions, 5 deletions
@@ -46,9 +46,9 @@ define('THEMEPATH', strtr(realpath('themes') . '/', DIRECTORY_SEPARATOR, '/')); define('SYSPATH', strtr(realpath('kohana') . '/', DIRECTORY_SEPARATOR, '/')); if (!file_exists('var')) { - include DOCROOT . "installer/helpers/system_check.php"; - if (system_check::failed()) { - system_check::display_requirements(); + include DOCROOT . "installer/helpers/installer.php"; + if (installer::failed()) { + installer::display_requirements(); die; } } 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); + + |