From f5fc8a35715e3bd7c6892c6a95ff4147d639c0bd Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Wed, 24 Jun 2015 17:01:40 -0500 Subject: [PATCH] cli: Move as a major feature (rather than deleted after install) --- README.md | 4 +- bootstrap.php | 1 + .../class.module.php => include/class.cli.php | 0 {setup => include}/cli/cli.inc.php | 4 +- {setup => include}/cli/modules/cron.php | 2 - {setup => include}/cli/modules/deploy.php | 1 - {setup => include}/cli/modules/export.php | 2 - {setup => include}/cli/modules/file.php | 2 - {setup => include}/cli/modules/i18n.php | 2 - {setup => include}/cli/modules/import.php | 2 - {setup => include}/cli/modules/list.php | 2 - {setup => include}/cli/modules/org.php | 2 - {setup => include}/cli/modules/package.php | 0 {setup => include}/cli/modules/unpack.php | 2 - {setup => include}/cli/modules/user.php | 2 - manage.php | 65 +++++++++++++++++++ setup/cli/manage.php | 65 +------------------ setup/doc/i18n.md | 2 +- setup/doc/package.md | 4 +- 19 files changed, 73 insertions(+), 91 deletions(-) rename setup/cli/modules/class.module.php => include/class.cli.php (100%) rename {setup => include}/cli/cli.inc.php (93%) rename {setup => include}/cli/modules/cron.php (87%) rename {setup => include}/cli/modules/deploy.php (99%) rename {setup => include}/cli/modules/export.php (96%) rename {setup => include}/cli/modules/file.php (99%) rename {setup => include}/cli/modules/i18n.php (99%) rename {setup => include}/cli/modules/import.php (98%) rename {setup => include}/cli/modules/list.php (96%) rename {setup => include}/cli/modules/org.php (95%) rename {setup => include}/cli/modules/package.php (100%) rename {setup => include}/cli/modules/unpack.php (99%) rename {setup => include}/cli/modules/user.php (98%) create mode 100755 manage.php mode change 100755 => 100644 setup/cli/manage.php diff --git a/README.md b/README.md index 8a81fba2e..72c42c75f 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ And deploy the code into somewhere in your server's www root folder, for instance cd osTicket-1.8 - php setup/cli/manage.php deploy --setup /var/www/htdocs/osticket/ + php manage.php deploy --setup /var/www/htdocs/osticket/ Then you can configure your server if necessary to serve that folder, and visit the page and install osTicket as usual. Go ahead and even delete @@ -52,7 +52,7 @@ later, you can fetch updates and deploy them (from the folder where you cloned the git repo into) git pull - php setup/cli/manage.php deploy -v /var/www/htdocs/osticket/ + php manage.php deploy -v /var/www/htdocs/osticket/ Upgrading --------- diff --git a/bootstrap.php b/bootstrap.php index 6d80b6330..c7ba0a415 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -309,6 +309,7 @@ define('SETUP_DIR',ROOT_DIR.'setup/'); define('UPGRADE_DIR', INCLUDE_DIR.'upgrader/'); define('I18N_DIR', INCLUDE_DIR.'i18n/'); +define('CLI_DIR', INCLUDE_DIR.'cli/'); /*############## Do NOT monkey with anything else beyond this point UNLESS you really know what you are doing ##############*/ diff --git a/setup/cli/modules/class.module.php b/include/class.cli.php similarity index 100% rename from setup/cli/modules/class.module.php rename to include/class.cli.php diff --git a/setup/cli/cli.inc.php b/include/cli/cli.inc.php similarity index 93% rename from setup/cli/cli.inc.php rename to include/cli/cli.inc.php index 31bdbfe89..401ddba40 100644 --- a/setup/cli/cli.inc.php +++ b/include/cli/cli.inc.php @@ -21,11 +21,9 @@ if(!strcasecmp(basename($_SERVER['SCRIPT_NAME']),basename(__FILE__))) die('kwahe define('ROOT_PATH', '/'); define('INC_DIR',dirname(__file__).'/../inc/'); //local include dir! -require_once(dirname(__file__).'/../../bootstrap.php'); +require_once INCLUDE_DIR . "class.cli.php"; Bootstrap::loadConfig(); Bootstrap::defineTables(TABLE_PREFIX); Bootstrap::loadCode(); Bootstrap::i18n_prep(); - -?> diff --git a/setup/cli/modules/cron.php b/include/cli/modules/cron.php similarity index 87% rename from setup/cli/modules/cron.php rename to include/cli/modules/cron.php index 724c06cac..c2df9458b 100644 --- a/setup/cli/modules/cron.php +++ b/include/cli/modules/cron.php @@ -1,6 +1,4 @@ <?php -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "/../cli.inc.php"; class CronManager extends Module { var $prologue = 'CLI cron manager for osTicket'; diff --git a/setup/cli/modules/deploy.php b/include/cli/modules/deploy.php similarity index 99% rename from setup/cli/modules/deploy.php rename to include/cli/modules/deploy.php index c616e321f..7a795e663 100644 --- a/setup/cli/modules/deploy.php +++ b/include/cli/modules/deploy.php @@ -1,5 +1,4 @@ <?php -require_once dirname(__file__) . "/class.module.php"; require_once dirname(__file__) . "/unpack.php"; class Deployment extends Unpacker { diff --git a/setup/cli/modules/export.php b/include/cli/modules/export.php similarity index 96% rename from setup/cli/modules/export.php rename to include/cli/modules/export.php index a6c45fcee..dc7d7ae3a 100644 --- a/setup/cli/modules/export.php +++ b/include/cli/modules/export.php @@ -13,8 +13,6 @@ vim: expandtab sw=4 ts=4 sts=4: **********************************************************************/ -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "../../cli.inc.php"; class Exporter extends Module { var $prologue = diff --git a/setup/cli/modules/file.php b/include/cli/modules/file.php similarity index 99% rename from setup/cli/modules/file.php rename to include/cli/modules/file.php index b1a2f9be6..f3f7991d3 100644 --- a/setup/cli/modules/file.php +++ b/include/cli/modules/file.php @@ -1,6 +1,4 @@ <?php -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "/../cli.inc.php"; class FileManager extends Module { var $prologue = 'CLI file manager for osTicket'; diff --git a/setup/cli/modules/i18n.php b/include/cli/modules/i18n.php similarity index 99% rename from setup/cli/modules/i18n.php rename to include/cli/modules/i18n.php index 9d5e6ca4c..617960cfd 100644 --- a/setup/cli/modules/i18n.php +++ b/include/cli/modules/i18n.php @@ -1,7 +1,5 @@ <?php -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "/../cli.inc.php"; require_once INCLUDE_DIR . 'class.format.php'; class i18n_Compiler extends Module { diff --git a/setup/cli/modules/import.php b/include/cli/modules/import.php similarity index 98% rename from setup/cli/modules/import.php rename to include/cli/modules/import.php index 27bf8962e..78946919c 100644 --- a/setup/cli/modules/import.php +++ b/include/cli/modules/import.php @@ -13,8 +13,6 @@ vim: expandtab sw=4 ts=4 sts=4: **********************************************************************/ -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "../../cli.inc.php"; require_once INCLUDE_DIR . "class.export.php"; require_once INCLUDE_DIR . 'class.json.php'; diff --git a/setup/cli/modules/list.php b/include/cli/modules/list.php similarity index 96% rename from setup/cli/modules/list.php rename to include/cli/modules/list.php index 33867acba..c1c5512d2 100644 --- a/setup/cli/modules/list.php +++ b/include/cli/modules/list.php @@ -1,6 +1,4 @@ <?php -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "/../cli.inc.php"; include_once INCLUDE_DIR .'class.translation.php'; diff --git a/setup/cli/modules/org.php b/include/cli/modules/org.php similarity index 95% rename from setup/cli/modules/org.php rename to include/cli/modules/org.php index c47e5cd7d..ae2fd7932 100644 --- a/setup/cli/modules/org.php +++ b/include/cli/modules/org.php @@ -1,6 +1,4 @@ <?php -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "/../cli.inc.php"; class OrganizationManager extends Module { var $prologue = 'CLI organization manager'; diff --git a/setup/cli/modules/package.php b/include/cli/modules/package.php similarity index 100% rename from setup/cli/modules/package.php rename to include/cli/modules/package.php diff --git a/setup/cli/modules/unpack.php b/include/cli/modules/unpack.php similarity index 99% rename from setup/cli/modules/unpack.php rename to include/cli/modules/unpack.php index cc4b9d9d9..add4abf5c 100644 --- a/setup/cli/modules/unpack.php +++ b/include/cli/modules/unpack.php @@ -1,7 +1,5 @@ <?php -require_once dirname(__file__) . "/class.module.php"; - class Unpacker extends Module { var $prologue = "Unpacks osTicket into target install path"; diff --git a/setup/cli/modules/user.php b/include/cli/modules/user.php similarity index 98% rename from setup/cli/modules/user.php rename to include/cli/modules/user.php index 6fd05f778..1504aacd2 100644 --- a/setup/cli/modules/user.php +++ b/include/cli/modules/user.php @@ -1,6 +1,4 @@ <?php -require_once dirname(__file__) . "/class.module.php"; -require_once dirname(__file__) . "/../cli.inc.php"; class UserManager extends Module { var $prologue = 'CLI user manager'; diff --git a/manage.php b/manage.php new file mode 100755 index 000000000..6e41cf6d5 --- /dev/null +++ b/manage.php @@ -0,0 +1,65 @@ +#!/usr/bin/env php +<?php + +if (PHP_SAPI != "cli") + die("Management only supported from command-line\n"); + +require_once 'bootstrap.php'; +require_once CLI_DIR . 'cli.inc.php'; + +if (!function_exists('noop')) { function noop() {} } +session_set_save_handler('noop','noop','noop','noop','noop','noop'); + +class Manager extends Module { + var $prologue = + "Manage one or more osTicket installations"; + + var $arguments = array( + 'action' => "Action to be managed" + ); + + var $usage = '$script action [options] [arguments]'; + + var $autohelp = false; + + function showHelp() { + foreach (glob(CLI_DIR.'modules/*.php') as $script) + include_once $script; + + global $registered_modules; + $this->epilog = + "Currently available modules follow. Use 'manage.php <module> + --help' for usage regarding each respective module:"; + + parent::showHelp(); + + echo "\n"; + foreach ($registered_modules as $name=>$mod) + echo str_pad($name, 20) . $mod->prologue . "\n"; + } + + function run($args, $options) { + if ($options['help'] && !$args['action']) + $this->showHelp(); + + else { + $action = $args['action']; + + global $argv; + foreach ($argv as $idx=>$val) + if ($val == $action) + unset($argv[$idx]); + + require_once CLI_DIR . "modules/{$args['action']}.php"; + if (($module = Module::getInstance($action))) + return $module->_run($args['action']); + + $this->stderr->write("Unknown action given\n"); + $this->showHelp(); + } + } +} + +$manager = new Manager(); +$manager->parseOptions(); +$manager->_run(basename(__file__)); diff --git a/setup/cli/manage.php b/setup/cli/manage.php old mode 100755 new mode 100644 index 83d715ac1..d2ae92b5a --- a/setup/cli/manage.php +++ b/setup/cli/manage.php @@ -1,66 +1,3 @@ -#!/usr/bin/env php <?php -require_once "modules/class.module.php"; - -if (!function_exists('noop')) { function noop() {} } -session_set_save_handler('noop','noop','noop','noop','noop','noop'); - -class Manager extends Module { - var $prologue = - "Manage one or more osTicket installations"; - - var $arguments = array( - 'action' => "Action to be managed" - ); - - var $usage = '$script action [options] [arguments]'; - - var $autohelp = false; - - function showHelp() { - foreach (glob(dirname(__file__).'/modules/*.php') as $script) - include_once $script; - - global $registered_modules; - $this->epilog = - "Currently available modules follow. Use 'manage.php <module> - --help' for usage regarding each respective module:"; - - parent::showHelp(); - - echo "\n"; - foreach ($registered_modules as $name=>$mod) - echo str_pad($name, 20) . $mod->prologue . "\n"; - } - - function run($args, $options) { - if ($options['help'] && !$args['action']) - $this->showHelp(); - - else { - $action = $args['action']; - - global $argv; - foreach ($argv as $idx=>$val) - if ($val == $action) - unset($argv[$idx]); - - require_once dirname(__file__)."/modules/{$args['action']}.php"; - if (($module = Module::getInstance($action))) - return $module->_run($args['action']); - - $this->stderr->write("Unknown action given\n"); - $this->showHelp(); - } - } -} - -if (php_sapi_name() != "cli") - die("Management only supported from command-line\n"); - -$manager = new Manager(); -$manager->parseOptions(); -$manager->_run(basename(__file__)); - -?> +include dirname(__file__) . '/../../manage.php'; diff --git a/setup/doc/i18n.md b/setup/doc/i18n.md index 92409a0de..bc995667d 100644 --- a/setup/doc/i18n.md +++ b/setup/doc/i18n.md @@ -110,7 +110,7 @@ comments can be used. For instance: Use the command line to compile the POT file to standard out - php setup/cli/manage.php i18n make-pot > message.pot + php manage.php i18n make-pot > message.pot ### Building language packs diff --git a/setup/doc/package.md b/setup/doc/package.md index 5570bb609..c9c3f0eca 100644 --- a/setup/doc/package.md +++ b/setup/doc/package.md @@ -11,11 +11,11 @@ being added to the distribution. More information is available via the automated help output. - php setup/cli/manage.php package --help + php manage.php package --help Creating the ZIP file --------------------- To package the system using the defaults (as a ZIP file), just invoke the packager with no other options. - php setup/cli/manage.php package + php manage.php package -- GitLab