<?php
namespace App\Commands;
class CLI extends \Jackbooted\Html\WebPage {
const DEF = '\App\Commands\CLI->index()';
private static $commands = [
'JACK:check_system' => '\App\Commands\JackCLI->checkSystem()',
'JACK:version' => '\App\Commands\JackCLI->version()',
'JACK:set_var' => '\App\Commands\JackCLI::setVar()',
'DB:migrate' => '\Jackbooted\DB\Migrations::migrate()',
'DB:initialize' => '\App\Commands\InstallationCLI::initialize()',
];
private static $helpText = <<<TXT
php jack.php <command>
<command> is one of the following:
JACK
----
JACK:check_system - Returns the status of the system queues, etc
JACK:version - Current vesion of the system
JACK:set_var - Sets a config value in the database
DB
------
DB:initialize - Set up the base database
DB:migrate - will install the database and install all models
TXT;
public static function init () {
self::$log = \Jackbooted\Util\Log4PHP::logFactory ( __CLASS__ );
}
public function index()
{
global $argv;
if ( count( $argv ) < 2 ) return $this->help();
if ( isset( self::$commands[$argv[1]] ) ) {
return self::execAction ( self::$commands[$argv[1]] );
}
else {
return $this->help();
}
}
public function help() {
// Check the commands are valid
foreach ( self::$commands as $cmd ) {
$parts = preg_split ( '/(->)|(::)/' , $cmd );
$clazz = $parts[0];
if ( $clazz != '\\' . get_class( new $clazz ) ) {
echo "Error: $clazz not found\n";
}
}
return self::$helpText;
}
}
|