Esempio n. 1
0
 public function createCommand(TaskInfo $taskInfo)
 {
     $task = new Command($taskInfo->getName());
     $task->setDescription($taskInfo->getDescription());
     $task->setHelp($taskInfo->getHelp());
     $args = $taskInfo->getArguments();
     foreach ($args as $name => $val) {
         $description = $taskInfo->getArgumentDescription($name);
         if ($val === TaskInfo::PARAM_IS_REQUIRED) {
             $task->addArgument($name, InputArgument::REQUIRED, $description);
         } elseif (is_array($val)) {
             $task->addArgument($name, InputArgument::IS_ARRAY, $description, $val);
         } else {
             $task->addArgument($name, InputArgument::OPTIONAL, $description, $val);
         }
     }
     $opts = $taskInfo->getOptions();
     foreach ($opts as $name => $val) {
         $description = $taskInfo->getOptionDescription($name);
         $fullName = $name;
         $shortcut = '';
         if (strpos($name, '|')) {
             list($fullName, $shortcut) = explode('|', $name, 2);
         }
         if (is_bool($val)) {
             $task->addOption($fullName, $shortcut, InputOption::VALUE_NONE, $description);
         } else {
             $task->addOption($fullName, $shortcut, InputOption::VALUE_OPTIONAL, $description, $val);
         }
     }
     return $task;
 }
Esempio n. 2
0
 /**
  * @param int|string $key
  * @param mixed $value
  */
 protected function showIterationMessage($key, $value)
 {
     if ($this->message) {
         $context = ['key' => $key, 'value' => $value];
         $context += $this->context;
         $context += TaskInfo::getTaskContext($this);
         $this->printTaskInfo($this->message, $context);
     }
 }
Esempio n. 3
0
 /**
  * {@inheritdoc}
  */
 public function run()
 {
     $callchain = '';
     foreach ($this->stack as $action) {
         $command = array_shift($action);
         $parameters = $this->formatParameters($action);
         $callchain .= "\n    ->{$command}(<fg=green>{$parameters}</>)";
     }
     $context = $this->getTaskContext(['_level' => RoboLogLevel::SIMULATED_ACTION, 'simulated' => TaskInfo::formatTaskName($this->task), 'parameters' => $this->formatParameters($this->constructorParameters), '_style' => ['simulated' => 'fg=blue;options=bold']]);
     // RoboLogLevel::SIMULATED_ACTION
     $this->printTaskInfo("Simulating {simulated}({parameters}){$callchain}", $context);
     $result = null;
     if ($this->task instanceof SimulatedInterface) {
         $result = $this->task->simulate($context);
     }
     if (!isset($result)) {
         $result = Result::success($this);
     }
     return $result;
 }
Esempio n. 4
0
 /**
  * @param $className
  * @param TaskInfo $taskInfo
  * @return Command
  */
 protected function createCommand($className, TaskInfo $taskInfo)
 {
     if ($className === strtolower(Tg::TGCLASS)) {
         $name = $taskInfo->getName();
     } else {
         $camel = preg_replace("/:/", '-', $taskInfo->getName());
         $name = $className . ':' . $camel;
     }
     $task = new Command($name);
     $task->setDescription($taskInfo->getDescription());
     $task->setHelp($taskInfo->getHelp());
     $args = $taskInfo->getArguments();
     foreach ($args as $name => $val) {
         $description = $taskInfo->getArgumentDescription($name);
         if ($val === TaskInfo::PARAM_IS_REQUIRED) {
             $task->addArgument($name, InputArgument::REQUIRED, $description);
         } elseif (is_array($val)) {
             $task->addArgument($name, InputArgument::IS_ARRAY, $description, $val);
         } else {
             $task->addArgument($name, InputArgument::OPTIONAL, $description, $val);
         }
     }
     $opts = $taskInfo->getOptions();
     foreach ($opts as $name => $val) {
         $description = $taskInfo->getOptionDescription($name);
         $fullName = $name;
         $shortcut = '';
         if (strpos($name, '|')) {
             list($fullName, $shortcut) = explode('|', $name, 2);
         }
         if (is_bool($val)) {
             $task->addOption($fullName, $shortcut, InputOption::VALUE_NONE, $description);
         } else {
             $task->addOption($fullName, $shortcut, InputOption::VALUE_OPTIONAL, $description, $val);
         }
     }
     return $task;
 }
Esempio n. 5
0
File: Result.php Progetto: jjok/Robo
 /**
  * Return a context useful for logging messages.
  *
  * @return array
  */
 public function getContext()
 {
     $task = $this->getTask();
     return TaskInfo::getTaskContext($task) + ['code' => $this->getExitCode(), 'data' => $this->getArrayCopy(), 'time' => $this->getExecutionTime(), 'message' => $this->getMessage()];
 }
Esempio n. 6
0
 /**
  * {@inheritdoc}
  */
 public function progressMessage($text, $context = [], $level = LogLevel::NOTICE)
 {
     $context += ['name' => 'Progress'];
     $context += TaskInfo::getTaskContext($this);
     return $this->addCode(function () use($level, $text, $context) {
         $this->printTaskOutput($level, $text, $context);
     });
 }
Esempio n. 7
0
File: TaskIO.php Progetto: jjok/Robo
 /**
  * @param null|array $context
  *
  * @return array with context information
  */
 protected function getTaskContext($context = null)
 {
     if (!$context) {
         $context = [];
     }
     if (!is_array($context)) {
         $context = ['task' => $context];
     }
     if (!array_key_exists('task', $context)) {
         $context['task'] = $this;
     }
     return $context + TaskInfo::getTaskContext($context['task']);
 }
Esempio n. 8
0
 public function getName()
 {
     return 'task:' . parent::getName();
 }
Esempio n. 9
0
 protected function createCommand($taskName)
 {
     $taskInfo = new TaskInfo(self::ROBOCLASS, $taskName);
     $task = new Command($taskInfo->getName());
     $task->setDescription($taskInfo->getDescription());
     $args = $taskInfo->getArguments();
     foreach ($args as $name => $val) {
         if ($val === TaskInfo::PARAM_IS_REQUIRED) {
             $task->addArgument($name, InputArgument::REQUIRED);
         } elseif (is_array($val)) {
             $task->addArgument($name, InputArgument::IS_ARRAY, '', $val);
         } else {
             $task->addArgument($name, InputArgument::OPTIONAL, '', $val);
         }
     }
     $opts = $taskInfo->getOptions();
     foreach ($opts as $name => $val) {
         if (empty($val)) {
             $task->addOption($name, '', InputOption::VALUE_NONE, '');
         } else {
             $task->addOption($name, '', InputOption::VALUE_OPTIONAL, '', $val);
         }
     }
     return $task;
 }