+ $cmd = $optParser->addCommand('connect');
+ $cmd->description = 'Obtain access token from a micropub server';
+ $cmd->addOption(
+ 'force',
+ array(
+ 'short_name' => '-f',
+ 'long_name' => '--force-update',
+ 'description' => 'Force token update if token already available',
+ 'action' => 'StoreTrue',
+ 'default' => false,
+ )
+ );
+ $cmd->addOption(
+ 'scope',
+ array(
+ 'short_name' => '-s',
+ 'long_name' => '--scope',
+ 'description' => 'Space-separated list of scopes to request'
+ . ' (default: create)',
+ 'action' => 'StoreString',
+ 'default' => 'create',
+ )
+ );
+ $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)',
+ ]
+ );
+ }
+
+ public function run($server, $user, $newKey, $force, $scope)
+ {
+ $server = Validator::url($server, 'server');
+ if ($user === null) {
+ //indieweb: homepage is your identity
+ $user = $server;
+ } else {
+ $user = Validator::url($user, 'user');
+ }
+