$res->command->args['server'],
$res->command->args['user'],
$res->command->args['key'],
- $res->command->options['force']
+ $res->command->options['force'],
+ $res->command->options['scope']
);
break;
case 'server':
$cmd = new Command_Server($this->cfg);
- $cmd->run($res->command->options['verbose']);
- break;
-
- case 'like':
- $this->requireValidHost();
- $cmd = new Command_Like($this->cfg);
- $cmd->run($res->command->args['url']);
- break;
-
- case 'reply':
- $this->requireValidHost();
- $cmd = new Command_Reply($this->cfg);
$cmd->run(
- $res->command->args['url'],
- implode(' ', $res->command->args['text'])
+ $res->command->args['server'],
+ $res->command->options['verbose']
);
break;
default:
- var_dump($this->cfg->host, $res);
- Log::err('FIXME');
+ $class = 'shpub\\Command_' . ucfirst($res->command_name);
+ $this->requireValidHost();
+ $cmd = new $class($this->cfg);
+ $cmd->run($res->command);
+ break;
}
} catch (\Exception $e) {
- echo 'Error: ' . $e->getMessage() . "\n";
+ Log::err('Error: ' . $e->getMessage());
exit(1);
}
}
/**
* Let the CLI option parser parse the options.
*
- * @param object $parser Option parser
+ * @param object $optParser Option parser
*
* @return object Parsed command line parameters
*/
$this->cfg->host = $this->cfg->hosts[$key];
}
}
- if ($opts['user'] !== null) {
- $this->cfg->host->user = $opts['user'];
- }
$this->cfg->setDebug($opts['debug']);
+ $this->cfg->setDryRun($opts['dryrun']);
return $res;
} catch (\Exception $exc) {
protected function loadOptParser()
{
$optParser = new \Console_CommandLine();
- $optParser->description = 'shpub';
- $optParser->version = '0.0.2';
+ $optParser->name = 'shpub';
+ $optParser->description = 'Command line micropub client';
+ $optParser->version = '0.6.0';
$optParser->subcommand_required = true;
$optParser->addOption(
'default' => null,
)
);
- $optParser->addOption(
- 'user',
- array(
- 'short_name' => '-u',
- 'long_name' => '--user',
- 'description' => 'User URL',
- 'help_name' => 'URL',
- 'action' => 'StoreString',
- 'default' => null,
- )
- );
$optParser->addOption(
'debug',
array(
'default' => false,
)
);
-
- $cmd = $optParser->addCommand('connect');
- $cmd->addOption(
- 'force',
+ $optParser->addOption(
+ 'dryrun',
array(
- 'short_name' => '-f',
- 'long_name' => '--force-update',
- 'description' => 'Force token update if token already available',
+ 'short_name' => '-n',
+ 'long_name' => '--dry-run',
+ 'description' => 'Do not send modifying HTTP request(s)'
+ . ' to the server',
'action' => 'StoreTrue',
'default' => false,
)
);
- $cmd->addArgument(
- 'server',
- [
- 'optional' => false,
- 'description' => 'Server URL',
- ]
- );
- $cmd->addArgument(
- 'user',
- [
- 'optional' => true,
- 'description' => 'User URL',
- ]
- );
- $cmd->addArgument(
- 'key',
- [
- 'optional' => true,
- 'description' => 'Short name (key)',
- ]
- );
- $cmd = $optParser->addCommand('server');
- $cmd->addOption(
- 'verbose',
- array(
- 'short_name' => '-v',
- 'long_name' => '--verbose',
- 'description' => 'Show more server infos',
- 'action' => 'StoreTrue',
- 'default' => false,
- )
- );
+ Command_Connect::opts($optParser);
+ Command_Server::opts($optParser);
+ Command_Targets::opts($optParser);
- //$cmd = $optParser->addCommand('post');
- $cmd = $optParser->addCommand('reply');
- $cmd->addArgument(
- 'url',
- [
- 'optional' => false,
- 'description' => 'URL that is replied to',
- ]
- );
- $cmd->addArgument(
- 'text',
- [
- 'optional' => false,
- 'multiple' => true,
- 'description' => 'Reply text',
- ]
- );
+ Command_Article::opts($optParser);
+ Command_Note::opts($optParser);
+ Command_Reply::opts($optParser);
+ Command_Like::opts($optParser);
+ Command_Repost::opts($optParser);
+ Command_Rsvp::opts($optParser);
+ Command_Bookmark::opts($optParser);
+ Command_X::opts($optParser);
- $cmd = $optParser->addCommand('like');
- $cmd->addArgument(
- 'url',
- [
- 'optional' => false,
- 'description' => 'URL that is liked',
- ]
- );
+ Command_Delete::opts($optParser);
+ Command_Undelete::opts($optParser);
+ Command_Update::opts($optParser);
+
+ Command_Upload::opts($optParser);
return $optParser;
}