public function executeCoreInitProject($arguments, $options)
 {
     $targetDir = realpath($_SERVER['PWD']);
     $scriptDir = sgContext::getLibDir();
     if (file_exists($targetDir . '/superglue')) {
         sgCLI::error('A project already exists in this directory.');
         return false;
     }
     if (sgCLI::confirm("Are you sure you want to initialize a superglue project in\n{$targetDir}")) {
         sgCLI::println('Initializing project...', sgCLI::STYLE_HEADER);
         sgToolkit::mkdir($targetDir . '/config', 0755);
         sgToolkit::mkdir($targetDir . '/cache', 0777);
         sgToolkit::mkdir($targetDir . '/cache', 0777);
         sgToolkit::mkdir($targetDir . '/models', 0755);
         sgToolkit::mkdir($targetDir . '/controllers', 0755);
         sgToolkit::mkdir($targetDir . '/views', 0755);
         sgToolkit::mkdir($targetDir . '/plugins', 0755);
         sgToolkit::mkdir($targetDir . '/web', 0755);
         sgToolkit::copy($scriptDir . '/skeleton/web/htaccess-dist', $targetDir . '/web/.htaccess');
         sgToolkit::copy($scriptDir . '/skeleton/web/index.php-dist', $targetDir . '/web/index.php');
         sgToolkit::copy($scriptDir . '/skeleton/config/ProjectConfiguration.class.php-dist', $targetDir . '/config/ProjectConfiguration.class.php');
         sgToolkit::copy($scriptDir . '/skeleton/config/config.php-dist', $targetDir . '/config/config.php');
         sgToolkit::copy($scriptDir . '/skeleton/config/routing.php-dist', $targetDir . '/config/routing.php');
         sgToolkit::copy($scriptDir . '/skeleton/views/index.html', $targetDir . '/views/index.html');
         if (sgToolkit::checkFileLocation($scriptDir, $targetDir)) {
             sgToolkit::symlink($this->relPath($scriptDir, $targetDir) . '/superglue', $targetDir . '/superglue');
         } else {
             sgToolkit::mkdir($targetDir . '/lib', 0755);
             sgToolkit::symlink($scriptDir, $targetDir . '/lib/superglue');
             sgToolkit::symlink($scriptDir, $targetDir . '/superglue');
         }
         sgToolkit::chmod($targetDir . '/superglue', 0755);
         sgCLI::println('Done.', sgCLI::STYLE_INFO);
     }
 }
Beispiel #2
0
 protected function parseParams($namespace, $task, $cliParams = array())
 {
     sgAutoloader::loadFile('Console_Getopt', dirname(__FILE__) . '/vendor/Console/Getopt.php');
     $arguments = array();
     $options = array();
     $taskDefinition = self::getTask($namespace, $task);
     if (isset($taskDefinition['options']) || isset($taskDefinition['arguments'])) {
         if (!isset($taskDefinition['arguments'])) {
             $taskDefinition['arguments'] = array();
         }
         if (!isset($taskDefinition['options']['short'])) {
             $taskDefinition['options']['short'] = null;
         }
         if (!isset($taskDefinition['options']['long'])) {
             $taskDefinition['options']['long'] = array();
         }
         try {
             $params = Console_Getopt::getopt($cliParams, $taskDefinition['options']['short'], $taskDefinition['options']['long']);
             if (!empty($taskDefinition['arguments']) && (!isset($params[1]) || count($taskDefinition['arguments']) !== count($params[1]))) {
                 throw new Exception('Missing required argument.');
             }
             $arguments = array();
             if (!empty($taskDefinition['arguments'])) {
                 $arguments = array_combine($taskDefinition['arguments'], $params[1]);
             }
             $options = array();
             foreach ($params[0] as $param) {
                 $options[$param[0]] = $param[1];
             }
         } catch (Exception $e) {
             $error = array();
             $error[] = $e->getMessage();
             if (isset($taskDefinition['usage'])) {
                 $error[] = 'Usage: ' . $taskDefinition['usage'];
             }
             sgCLI::error($error);
             return false;
         }
     }
     return array('arguments' => $arguments, 'options' => $options);
 }
 public function executeDoctrineCli($arguments = array(), $options = array())
 {
     try {
         DoctrinePluginConfiguration::init();
     } catch (Exception $e) {
         sgCLI::error($e->getMessage());
         return false;
     }
     // spl_autoload_register(array('Doctrine', 'modelsAutoload'));
     spl_autoload_register(array('Doctrine', 'extensionsAutoload'));
     $settings = sgConfiguration::get('settings.DoctrinePlugin');
     $settings['generate_models_options']['suffix'] = '.class.php';
     $config = array('data_fixtures_path' => DoctrinePluginConfiguration::getPath('fixtures'), 'models_path' => DoctrinePluginConfiguration::getPath('models'), 'migrations_path' => DoctrinePluginConfiguration::getPath('mogrations'), 'sql_path' => DoctrinePluginConfiguration::getPath('sql'), 'yaml_schema_path' => DoctrinePluginConfiguration::getPath('schema'), 'generate_models_options' => $settings['generate_models_options']);
     $cg = new Console_Getopt();
     $params = $cg->readPHPArgv();
     $params[0] .= ' ' . $params[1];
     unset($params[1]);
     $params = array_merge($params);
     $cli = new DoctrinePluginCli($config);
     $cli->run($params);
 }
Beispiel #4
0
 public static function handleException($exception)
 {
     sgCLI::error($exception->getMessage());
     sgCLI::println($exception);
 }