*/ class UpdateCommand extends Command { /** * {@inheritdoc} */ protected function configure() { $types = implode(', ', $this->getTypes()); $this ->setName('update') ->setDescription('Update a gist using the API') ->addArgument('input', InputArgument::REQUIRED, 'Input') ->addOption('gist', null, InputOption::VALUE_REQUIRED, 'Id or File of the gist') ->addOption('show-url', 'u', InputOption::VALUE_NONE, 'Display only the gist url') ->addOption('show-id', 'i', InputOption::VALUE_NONE, 'Display only the gist Id') ->setHelp(<<input Identify the source of the content: path of the file (eg: /path/to/file) or standard input (-) type Defines the type of code: {$types} Default value: text Options: --gist Defines the Gist to update by using its Id or its File --show-id, -i Display only the Id of the gist --show-url, -u Display only the url of the gist EOF ); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { //$output->writeln(sprintf('%s bar.', 'test')); $file = $input->getArgument('input'); $gist = $input->getOption('gist'); if ($file === '-') { $content = file_get_contents('php://stdin'); } else { if (!is_readable($file)) { $output->writeln(sprintf('%s: No such file.', $file)); return false; } if (!is_file($file)) { $output->writeln(sprintf('"%s" must be a file.', $file)); return false; } $content = file_get_contents($file); } if (trim($content) === '') { $output->writeln(sprintf('You can not create an empty gist.', $type)); } $gist = $this->getSilexApplication()['api_client']->update($gist, $content); if ($input->getOption('show-url')) { $output->writeln($gist['url']); return true; } if ($input->getOption('show-id')) { $output->writeln($gist['gist']['Id']); return true; } $output->writeln(json_encode($gist)); } /** * Returns the list of types. * * @return array */ protected function getTypes() { $types = array( 'html', 'css', 'javascript', 'php', 'sql', 'xml', 'yaml', 'perl', 'c', 'asp', 'python', 'bash', 'actionscript3', 'text', ); return $types; } }