Esempio n. 1
0
 public static function init($args)
 {
     try {
         if (!isset($args[1])) {
             static::help();
             return;
         }
         switch ($args[1]) {
             case 'g':
             case 'generate':
                 switch ($args[2]) {
                     case 'controller':
                     case 'model':
                     case 'view':
                     case 'views':
                     case 'migration':
                         call_user_func('Oil\\Generate::' . $args[2], array_slice($args, 3));
                         break;
                     case 'scaffold':
                         call_user_func('Oil\\Scaffold::generate', array_slice($args, 3));
                         break;
                     default:
                         Generate::help();
                 }
                 break;
             case 'c':
             case 'console':
                 new Console();
             case 'r':
             case 'refine':
                 $task = isset($args[2]) ? $args[2] : null;
                 call_user_func('Oil\\Refine::run', $task, array_slice($args, 3));
                 break;
             case 'p':
             case 'package':
                 switch ($args[2]) {
                     case 'install':
                     case 'uninstall':
                         call_user_func_array('Oil\\Package::' . $args[2], array_slice($args, 3));
                         break;
                     default:
                         Package::help();
                 }
                 break;
             case '-v':
             case '--version':
                 \Cli::write('Fuel: ' . \Fuel::VERSION);
                 break;
             case 'test':
                 \Fuel::add_package('octane');
                 call_user_func('\\Fuel\\Octane\\Tests::run_' . $args[2], array_slice($args, 3));
                 break;
             default:
                 static::help();
         }
     } catch (Exception $e) {
         \Cli::write(\Cli::color('Error: ' . $e->getMessage(), 'light_red'));
         \Cli::beep();
     }
 }
Esempio n. 2
0
 public static function init($args)
 {
     // Remove flag options from the main argument list
     for ($i = 0; $i < count($args); $i++) {
         if (strpos($args[$i], '-') === 0) {
             unset($args[$i]);
         }
     }
     try {
         if (!isset($args[1])) {
             if (\Cli::option('v', \Cli::option('version'))) {
                 \Cli::write('Fuel: ' . \Fuel::VERSION);
                 return;
             }
             static::help();
             return;
         }
         switch ($args[1]) {
             case 'g':
             case 'generate':
                 $action = isset($args[2]) ? $args[2] : 'help';
                 $subfolder = 'default';
                 if (is_int(strpos($action, 'scaffold/'))) {
                     $subfolder = str_replace('scaffold/', '', $action);
                     $action = 'scaffold';
                 }
                 switch ($action) {
                     case 'controller':
                     case 'model':
                     case 'views':
                     case 'migration':
                         call_user_func('Oil\\Generate::' . $action, array_slice($args, 3));
                         break;
                     case 'scaffold':
                         call_user_func('Oil\\Scaffold::generate', array_slice($args, 3), $subfolder);
                         break;
                     default:
                         Generate::help();
                 }
                 break;
             case 'c':
             case 'console':
                 new Console();
             case 'r':
             case 'refine':
                 // Developers of third-party tasks may not be displaying PHP errors. Report any error and quit
                 set_error_handler(function ($errno, $errstr, $errfile, $errline) {
                     \Cli::error("Error: {$errstr} in {$errfile} on {$errline}");
                     \Cli::beep();
                     exit;
                 });
                 $task = isset($args[2]) ? $args[2] : null;
                 call_user_func('Oil\\Refine::run', $task, array_slice($args, 3));
                 break;
             case 'p':
             case 'package':
                 $action = isset($args[2]) ? $args[2] : 'help';
                 switch ($action) {
                     case 'install':
                     case 'uninstall':
                         call_user_func_array('Oil\\Package::' . $action, array_slice($args, 3));
                         break;
                     default:
                         Package::help();
                 }
                 break;
             case 't':
             case 'test':
                 // Suppressing this because if the file does not exist... well thats a bad thing and we can't really check
                 // I know that supressing errors is bad, but if you're going to complain: shut up. - Phil
                 @(include_once 'PHPUnit/Autoload.php');
                 // Attempt to load PHUnit.  If it fails, we are done.
                 if (!class_exists('PHPUnit_Framework_TestCase')) {
                     throw new Exception('PHPUnit does not appear to be installed.' . PHP_EOL . PHP_EOL . "\tPlease visit http://phpunit.de and install.");
                 }
                 // CD to the root of Fuel and call up phpunit with a path to our config
                 $command = 'cd ' . DOCROOT . '; phpunit -c "' . COREPATH . 'phpunit.xml"';
                 // Respect the group option
                 \Cli::option('group') and $command .= ' --group ' . \Cli::option('group');
                 // Respect the coverage-html option
                 \Cli::option('coverage-html') and $command .= ' --coverage-html ' . \Cli::option('coverage-html');
                 passthru($command);
                 break;
             default:
                 static::help();
         }
     } catch (Exception $e) {
         \Cli::error('Error: ' . $e->getMessage());
         \Cli::beep();
     }
 }
Esempio n. 3
0
 public static function init($args)
 {
     // Remove flag options from the main argument list
     $args = self::_clear_args($args);
     try {
         if (!isset($args[1])) {
             if (\Cli::option('v', \Cli::option('version'))) {
                 \Cli::write('Fuel: ' . \Fuel::VERSION);
                 return;
             }
             static::help();
             return;
         }
         switch ($args[1]) {
             case 'g':
             case 'generate':
                 $action = isset($args[2]) ? $args[2] : 'help';
                 $subfolder = 'orm';
                 if (is_int(strpos($action, '/'))) {
                     list($action, $subfolder) = explode('/', $action);
                 }
                 switch ($action) {
                     case 'config':
                     case 'controller':
                     case 'model':
                     case 'migration':
                         call_user_func('Oil\\Generate::' . $action, array_slice($args, 3));
                         break;
                     case 'views':
                         call_user_func('Oil\\Generate::views', array_slice($args, 3), $subfolder);
                         break;
                     case 'admin':
                         call_user_func('Oil\\Generate_Admin::forge', array_slice($args, 3), $subfolder);
                         break;
                     case 'scaffold':
                         call_user_func('Oil\\Generate_Scaffold::forge', array_slice($args, 3), $subfolder);
                         break;
                     default:
                         Generate::help();
                 }
                 break;
             case 'c':
             case 'console':
                 new Console();
             case 'r':
             case 'refine':
                 // Developers of third-party tasks may not be displaying PHP errors. Report any error and quit
                 set_error_handler(function ($errno, $errstr, $errfile, $errline) {
                     if (!error_reporting()) {
                         return;
                     }
                     // If the error was supressed with an @ then we ignore it!
                     \Cli::error("Error: {$errstr} in {$errfile} on {$errline}");
                     \Cli::beep();
                     exit;
                 });
                 $task = isset($args[2]) ? $args[2] : null;
                 call_user_func('Oil\\Refine::run', $task, array_slice($args, 3));
                 break;
             case 'cell':
             case 'cells':
                 $action = isset($args[2]) ? $args[2] : 'help';
                 switch ($action) {
                     case 'list':
                         call_user_func('Oil\\Cell::all');
                         break;
                     case 'search':
                     case 'install':
                     case 'upgrade':
                     case 'uninstall':
                         call_user_func_array('Oil\\Cell::' . $action, array_slice($args, 3));
                         break;
                     case 'info':
                     case 'details':
                         call_user_func_array('Oil\\Cell::info', array_slice($args, 3));
                         break;
                     default:
                         Cell::help();
                 }
                 break;
             case 't':
             case 'test':
                 // Suppressing this because if the file does not exist... well thats a bad thing and we can't really check
                 // I know that supressing errors is bad, but if you're going to complain: shut up. - Phil
                 @(include_once 'PHPUnit/Autoload.php');
                 // Attempt to load PHUnit.  If it fails, we are done.
                 if (!class_exists('PHPUnit_Framework_TestCase')) {
                     throw new Exception('PHPUnit does not appear to be installed.' . PHP_EOL . PHP_EOL . "\tPlease visit http://phpunit.de and install.");
                 }
                 // CD to the root of Fuel and call up phpunit with a path to our config
                 $command = 'cd ' . DOCROOT . '; phpunit -c "' . COREPATH . 'phpunit.xml"';
                 // Respect the group option
                 \Cli::option('group') and $command .= ' --group ' . \Cli::option('group');
                 // Respect the coverage-html option
                 \Cli::option('coverage-html') and $command .= ' --coverage-html ' . \Cli::option('coverage-html');
                 \Cli::write('Tests Running...This may take a few moments.', 'green');
                 foreach (explode(';', $command) as $c) {
                     passthru($c);
                 }
                 break;
             default:
                 static::help();
         }
     } catch (Exception $e) {
         \Cli::error('Error: ' . $e->getMessage());
         \Cli::beep();
         \Cli::option('speak') and `say --voice="Trinoids" "{$e->getMessage()}"`;
     }
 }
Esempio n. 4
0
File: cli.php Progetto: nasumi/fuel
	public static function init($args)
	{
		if ( ! isset($args[1]))
		{
			static::help();
			return;
		}

		switch ($args[1])
		{
			case 'g':
			case 'generate':

				switch ($args[2])
				{
					case 'controller':
					case 'model':
					case 'view':
					case 'views':
					case 'migration':

						call_user_func('Oil\Generate::'.$args[2], array_slice($args, 3));

					break;

					case 'scaffold':
						call_user_func('Oil\Scaffold::generate', array_slice($args, 3));
					break;

					default:
						Generate::help();
				}
			break;

			case 'c':
			case 'console':
				new Console;

			case 'r':
			case 'refine':

				if ( ! isset($args[2]) OR $args[2] == 'help')
				{
					Refine::help();
					return;
				}

				call_user_func('Oil\Refine::run', $args[2], array_slice($args, 3));
			break;

			case 'install':
			case 'uninstall':
				call_user_func('Oil\Package::'.$args[1], $args[2]);
			break;

			case '-v':
			case '--version':
				\Cli::write('Fuel: ' . \Fuel::VERSION);
			break;

			case 'test':
				\Fuel::add_package('octane');
				call_user_func('\\Fuel\\Octane\\Tests::run_'.$args[2], array_slice($args, 3));
			break;

			default:
				static::help();
		}
	}
Esempio n. 5
0
 public static function init($args)
 {
     \Config::load('oil', true);
     // Remove flag options from the main argument list
     $args = self::_clear_args($args);
     try {
         if (!isset($args[1])) {
             if (\Cli::option('v', \Cli::option('version'))) {
                 \Cli::write('Fuel: ' . \Fuel::VERSION . ' running in "' . \Fuel::$env . '" mode');
                 return;
             }
             static::help();
             return;
         }
         switch ($args[1]) {
             case 'g':
             case 'generate':
                 $action = isset($args[2]) ? $args[2] : 'help';
                 $subfolder = 'orm';
                 if (is_int(strpos($action, '/'))) {
                     list($action, $subfolder) = explode('/', $action);
                 }
                 switch ($action) {
                     case 'config':
                     case 'controller':
                     case 'model':
                     case 'migration':
                     case 'task':
                         call_user_func('Oil\\Generate::' . $action, array_slice($args, 3));
                         break;
                     case 'views':
                         call_user_func('Oil\\Generate::views', array_slice($args, 3), $subfolder);
                         break;
                     case 'admin':
                         call_user_func('Oil\\Generate_Admin::forge', array_slice($args, 3), $subfolder);
                         break;
                     case 'scaffold':
                         call_user_func('Oil\\Generate_Scaffold::forge', array_slice($args, 3), $subfolder);
                         break;
                     default:
                         Generate::help();
                 }
                 break;
             case 'c':
             case 'console':
                 new Console();
             case 'p':
             case 'package':
                 $action = isset($args[2]) ? $args[2] : 'help';
                 switch ($action) {
                     case 'install':
                     case 'uninstall':
                         call_user_func_array('Oil\\Package::' . $action, array_slice($args, 3));
                         break;
                     default:
                         Package::help();
                 }
                 break;
             case 'r':
             case 'refine':
                 $task = isset($args[2]) ? $args[2] : null;
                 call_user_func('Oil\\Refine::run', $task, array_slice($args, 3));
                 break;
             case 'cell':
             case 'cells':
                 $action = isset($args[2]) ? $args[2] : 'help';
                 switch ($action) {
                     case 'list':
                         call_user_func('Oil\\Cell::all');
                         break;
                     case 'search':
                     case 'install':
                     case 'upgrade':
                     case 'uninstall':
                         call_user_func_array('Oil\\Cell::' . $action, array_slice($args, 3));
                         break;
                     case 'info':
                     case 'details':
                         call_user_func_array('Oil\\Cell::info', array_slice($args, 3));
                         break;
                     default:
                         Cell::help();
                 }
                 break;
             case 't':
             case 'test':
                 // Suppressing this because if the file does not exist... well thats a bad thing and we can't really check
                 // I know that supressing errors is bad, but if you're going to complain: shut up. - Phil
                 $phpunit_autoload_path = \Config::get('oil.phpunit.autoload_path', 'PHPUnit/Autoload.php');
                 @(include_once $phpunit_autoload_path);
                 // Attempt to load PHUnit.  If it fails, we are done.
                 if (!class_exists('PHPUnit_Framework_TestCase')) {
                     throw new Exception('PHPUnit does not appear to be installed.' . PHP_EOL . PHP_EOL . "\tPlease visit http://phpunit.de and install.");
                 }
                 // Check for a custom phpunit config, but default to the one from core
                 if (file_exists(APPPATH . 'phpunit.xml')) {
                     $phpunit_config = APPPATH . 'phpunit.xml';
                 } else {
                     $phpunit_config = COREPATH . 'phpunit.xml';
                 }
                 // CD to the root of Fuel and call up phpunit with the path to our config
                 $phpunit_command = \Config::get('oil.phpunit.binary_path', 'phpunit');
                 $command = 'cd ' . DOCROOT . '; ' . $phpunit_command . ' -c "' . $phpunit_config . '"';
                 // Respect the group options
                 \Cli::option('group') and $command .= ' --group ' . \Cli::option('group');
                 \Cli::option('exclude-group') and $command .= ' --exclude-group ' . \Cli::option('exclude-group');
                 // Respect the coverage-html option
                 \Cli::option('coverage-html') and $command .= ' --coverage-html ' . \Cli::option('coverage-html');
                 \Cli::option('coverage-clover') and $command .= ' --coverage-clover ' . \Cli::option('coverage-clover');
                 \Cli::option('coverage-text') and $command .= ' --coverage-text=' . \Cli::option('coverage-text');
                 \Cli::option('coverage-php') and $command .= ' --coverage-php ' . \Cli::option('coverage-php');
                 \Cli::option('log-junit') and $command .= ' --log-junit ' . \Cli::option('log-junit');
                 \Cli::option('file') and $command .= ' ' . \Cli::option('file');
                 \Cli::write('Tests Running...This may take a few moments.', 'green');
                 $return_code = 0;
                 foreach (explode(';', $command) as $c) {
                     passthru($c, $return_code_task);
                     // Return failure if any subtask fails
                     $return_code |= $return_code_task;
                 }
                 exit($return_code);
                 break;
             case 's':
             case 'server':
                 if (version_compare(PHP_VERSION, '5.4.0') < 0) {
                     \Cli::write('The PHP built-in webserver is only available on PHP 5.4+', 'red');
                     break;
                 }
                 $php = \Cli::option('php', 'php');
                 $port = \Cli::option('p', \Cli::option('port', '8000'));
                 $host = \Cli::option('h', \Cli::option('host', 'localhost'));
                 $docroot = \Cli::option('d', \Cli::option('docroot', 'public/'));
                 $router = \Cli::option('r', \Cli::option('router', __DIR__ . DS . '..' . DS . 'phpserver.php'));
                 \Cli::write("Listening on http://{$host}:{$port}");
                 \Cli::write("Document root is {$docroot}");
                 \Cli::write("Press Ctrl-C to quit.");
                 passthru("{$php} -S {$host}:{$port} -t {$docroot} {$router}");
                 break;
             default:
                 static::help();
         }
     } catch (\Exception $e) {
         static::print_exception($e);
         exit(1);
     }
 }
Esempio n. 6
0
    public static function init($args)
    {
        \Config::load('oil', true);
        // Remove flag options from the main argument list
        $args = self::_clear_args($args);
        try {
            if (!isset($args[1])) {
                if (\Cli::option('v', \Cli::option('version'))) {
                    \Cli::write('Fuel: ' . \Fuel::VERSION . ' running in "' . \Fuel::$env . '" mode');
                    return;
                }
                static::help();
                return;
            }
            switch ($args[1]) {
                case 'g':
                case 'generate':
                    $action = isset($args[2]) ? $args[2] : 'help';
                    $subfolder = 'orm';
                    if (is_int(strpos($action, '/'))) {
                        list($action, $subfolder) = explode('/', $action);
                    }
                    switch ($action) {
                        case 'config':
                        case 'controller':
                        case 'model':
                        case 'module':
                        case 'migration':
                        case 'task':
                        case 'package':
                            call_user_func('Oil\\Generate::' . $action, array_slice($args, 3));
                            break;
                        case 'views':
                            call_user_func('Oil\\Generate::views', array_slice($args, 3), $subfolder);
                            break;
                        case 'admin':
                            call_user_func('Oil\\Generate_Admin::forge', array_slice($args, 3), $subfolder);
                            break;
                        case 'scaffold':
                            call_user_func('Oil\\Generate_Scaffold::forge', array_slice($args, 3), $subfolder);
                            break;
                        default:
                            Generate::help();
                    }
                    break;
                case 'c':
                case 'console':
                    if (isset($args[2]) and $args[2] == 'help') {
                        Console::help();
                    } else {
                        new Console();
                    }
                    break;
                case 'p':
                case 'package':
                    $action = isset($args[2]) ? $args[2] : 'help';
                    switch ($action) {
                        case 'install':
                        case 'uninstall':
                            call_fuel_func_array('Oil\\Package::' . $action, array_slice($args, 3));
                            break;
                        default:
                            Package::help();
                    }
                    break;
                case 'r':
                case 'refine':
                    $task = isset($args[2]) ? $args[2] : null;
                    call_user_func('Oil\\Refine::run', $task, array_slice($args, 3));
                    break;
                case 'cell':
                case 'cells':
                    $action = isset($args[2]) ? $args[2] : 'help';
                    switch ($action) {
                        case 'list':
                            call_user_func('Oil\\Cell::all');
                            break;
                        case 'search':
                        case 'install':
                        case 'upgrade':
                        case 'uninstall':
                            call_fuel_func_array('Oil\\Cell::' . $action, array_slice($args, 3));
                            break;
                        case 'info':
                        case 'details':
                            call_fuel_func_array('Oil\\Cell::info', array_slice($args, 3));
                            break;
                        default:
                            Cell::help();
                    }
                    break;
                case 't':
                case 'test':
                    if (isset($args[2]) and $args[2] == 'help') {
                        $output = <<<HELP

Usage:
  php oil [t|test]

Runtime options:
  --file=<file>              # Run a test on a specific file only.
  --group=<group>            # Only runs tests from the specified group(s).
  --exclude-group=<group>    # Exclude tests from the specified group(s).
  --testsuite=<testsuite>    # Only runs tests from the specified testsuite(s).
  --coverage-clover=<file>   # Generate code coverage report in Clover XML format.
  --coverage-html=<dir>      # Generate code coverage report in HTML format.
  --coverage-php=<file>      # Serialize PHP_CodeCoverage object to file.
  --coverage-text=<file>     # Generate code coverage report in text format.
  --log-junit=<file>         # Generate report of test execution in JUnit XML format to file.
  --debug                    # Display debugging information during test execution.

Description:
  Run phpunit on all or a subset of tests defined for the current application.

Examples:
  php oil test

Documentation:
  http://fuelphp.com/docs/packages/oil/test.html
HELP;
                        \Cli::write($output);
                    } else {
                        $phpunit_command = \Config::get('oil.phpunit.binary_path', 'phpunit');
                        // Check if we might be using the phar library
                        $is_phar = false;
                        foreach (explode(':', getenv('PATH')) as $path) {
                            if (is_file($path . DS . $phpunit_command)) {
                                $handle = fopen($path . DS . $phpunit_command, 'r');
                                $is_phar = fread($handle, 18) == '#!/usr/bin/env php';
                                fclose($handle);
                                if ($is_phar) {
                                    break;
                                }
                            }
                        }
                        // Suppressing this because if the file does not exist... well thats a bad thing and we can't really check
                        // I know that supressing errors is bad, but if you're going to complain: shut up. - Phil
                        $phpunit_autoload_path = \Config::get('oil.phpunit.autoload_path', 'PHPUnit/Autoload.php');
                        @(include_once $phpunit_autoload_path);
                        // Attempt to load PHUnit.  If it fails, we are done.
                        if (!$is_phar and !class_exists('PHPUnit_Framework_TestCase')) {
                            throw new Exception('PHPUnit does not appear to be installed.' . PHP_EOL . PHP_EOL . "\tPlease visit http://phpunit.de and install.");
                        }
                        // Check for a custom phpunit config, but default to the one from core
                        if (is_file(APPPATH . 'phpunit.xml')) {
                            $phpunit_config = APPPATH . 'phpunit.xml';
                        } else {
                            $phpunit_config = COREPATH . 'phpunit.xml';
                        }
                        // CD to the root of Fuel and call up phpunit with the path to our config
                        $command = 'cd ' . DOCROOT . '; ' . $phpunit_command . ' -c "' . $phpunit_config . '"';
                        // Respect the group options
                        \Cli::option('group') and $command .= ' --group ' . \Cli::option('group');
                        \Cli::option('exclude-group') and $command .= ' --exclude-group ' . \Cli::option('exclude-group');
                        // Respect the testsuite options
                        \Cli::option('testsuite') and $command .= ' --testsuite ' . \Cli::option('testsuite');
                        // Respect the debug options
                        \Cli::option('debug') and $command .= ' --debug';
                        // Respect the coverage-html option
                        \Cli::option('coverage-html') and $command .= ' --coverage-html ' . \Cli::option('coverage-html');
                        \Cli::option('coverage-clover') and $command .= ' --coverage-clover ' . \Cli::option('coverage-clover');
                        \Cli::option('coverage-text') and $command .= ' --coverage-text=' . \Cli::option('coverage-text');
                        \Cli::option('coverage-php') and $command .= ' --coverage-php ' . \Cli::option('coverage-php');
                        \Cli::option('log-junit') and $command .= ' --log-junit ' . \Cli::option('log-junit');
                        \Cli::option('file') and $command .= ' ' . \Cli::option('file');
                        \Cli::write('Tests Running...This may take a few moments.', 'green');
                        $return_code = 0;
                        foreach (explode(';', $command) as $c) {
                            passthru($c, $return_code_task);
                            // Return failure if any subtask fails
                            $return_code |= $return_code_task;
                        }
                        exit($return_code);
                    }
                    break;
                case 's':
                case 'server':
                    if (isset($args[2]) and $args[2] == 'help') {
                        $output = <<<HELP

Usage:
  php oil [s|server]

Runtime options:
  --php=<file>               # The full pathname of your PHP-CLI binary if it's not in the path.
  --port=<port>              # TCP port number the webserver should listen too. Defaults to 8000.
  --host=<host>              # Hostname the webserver should run at. Defaults to "localhost".
  --docroot=<dir>            # Your FuelPHP docroot. Defaults to "public".
  --router=<file>            # PHP router script. Defaults to "fuel/packages/oil/phpserver.php".

Description:
  Starts a local webserver to run your FuelPHP application, using PHP 5.4+ internal webserver.

Examples:
  php oil server -p=8080

Documentation:
  http://fuelphp.com/docs/packages/oil/server.html
HELP;
                        \Cli::write($output);
                    } else {
                        if (version_compare(PHP_VERSION, '5.4.0') < 0) {
                            \Cli::write('The PHP built-in webserver is only available on PHP 5.4+', 'red');
                            break;
                        }
                        $php = \Cli::option('php', 'php');
                        $port = \Cli::option('p', \Cli::option('port', '8000'));
                        $host = \Cli::option('h', \Cli::option('host', 'localhost'));
                        $docroot = \Cli::option('d', \Cli::option('docroot', 'public'));
                        $router = \Cli::option('r', \Cli::option('router', __DIR__ . DS . '..' . DS . 'phpserver.php'));
                        \Cli::write("Listening on http://{$host}:{$port}");
                        \Cli::write("Document root is {$docroot}");
                        \Cli::write("Press Ctrl-C to quit.");
                        passthru("{$php} -S {$host}:{$port} -t {$docroot} {$router}");
                    }
                    break;
                case 'create':
                    \Cli::write('You can not use "oil create", a valid FuelPHP installation already exists in this directory', 'red');
                    break;
                default:
                    static::help();
            }
        } catch (\Exception $e) {
            static::print_exception($e);
            exit(1);
        }
    }