1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-25 16:22:42 +01:00

Minor tidying of ArcanistPasteWorkflow

Summary: Self-explanatory.

Test Plan: Eyeball it.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Differential Revision: https://secure.phabricator.com/D11566
This commit is contained in:
Joshua Spence 2015-02-01 21:57:49 +11:00
parent 8208cd3231
commit 8cad12034f

View file

@ -41,14 +41,14 @@ EOTEXT
return array( return array(
'title' => array( 'title' => array(
'param' => 'title', 'param' => 'title',
'help' => 'Title for the paste.', 'help' => pht('Title for the paste.'),
), ),
'lang' => array( 'lang' => array(
'param' => 'language', 'param' => 'language',
'help' => 'Language for syntax highlighting.', 'help' => pht('Language for syntax highlighting.'),
), ),
'json' => array( 'json' => array(
'help' => 'Output in JSON format.', 'help' => pht('Output in JSON format.'),
), ),
'*' => 'argv', '*' => 'argv',
); );
@ -59,41 +59,35 @@ EOTEXT
} }
protected function didParseArguments() { protected function didParseArguments() {
$this->json = $this->getArgument('json');
$this->language = $this->getArgument('lang'); $this->language = $this->getArgument('lang');
$this->title = $this->getArgument('title'); $this->title = $this->getArgument('title');
$this->json = $this->getArgument('json');
$argv = $this->getArgument('argv'); $argv = $this->getArgument('argv');
if (count($argv) > 1) { if (count($argv) > 1) {
throw new ArcanistUsageException('Specify only one paste to retrieve.'); throw new ArcanistUsageException(
pht('Specify only one paste to retrieve.'));
} else if (count($argv) == 1) { } else if (count($argv) == 1) {
$id = $argv[0]; $id = $argv[0];
if (!preg_match('/^P?\d+/', $id)) { if (!preg_match('/^P?\d+/', $id)) {
throw new ArcanistUsageException('Specify a paste ID, like P123.'); throw new ArcanistUsageException(
pht(
'Specify a paste ID, like %s.',
'P123'));
} }
$this->id = (int)ltrim($id, 'P'); $this->id = (int)ltrim($id, 'P');
if ($this->language || $this->title) { if ($this->language || $this->title) {
throw new ArcanistUsageException( throw new ArcanistUsageException(
'Use options --lang and --title only when creating pastes.'); pht(
'Use options %s and %s only when creating pastes.',
'--lang',
'--title'));
} }
} }
} }
private function getTitle() {
return $this->title;
}
private function getLanguage() {
return $this->language;
}
private function getJSON() {
return $this->json;
}
public function run() { public function run() {
if ($this->id) { if ($this->id) {
return $this->getPaste(); return $this->getPaste();
} else { } else {
@ -111,13 +105,13 @@ EOTEXT
)); ));
$info = head($info); $info = head($info);
if ($this->getJSON()) { if ($this->json) {
echo json_encode($info)."\n"; echo json_encode($info)."\n";
} else { } else {
echo $info['content']; echo $info['content'];
if (!preg_match('/\\n$/', $info['content'])) { if (!preg_match('/\\n$/', $info['content'])) {
// If there's no newline, add one, since it looks stupid otherwise. If // If there's no newline, add one, since it looks stupid otherwise. If
// you want byte-for-byte equivalence you can use --json. // you want byte-for-byte equivalence you can use `--json`.
echo "\n"; echo "\n";
} }
} }
@ -128,15 +122,16 @@ EOTEXT
private function createPaste() { private function createPaste() {
$conduit = $this->getConduit(); $conduit = $this->getConduit();
// Avoid confusion when people type "arc paste" with nothing else. if (!function_exists('posix_isatty') || posix_isatty(STDIN)) {
$this->writeStatusMessage("Reading paste from stdin...\n"); $this->writeStatusMessage("Reading paste from stdin...\n");
}
$info = $conduit->callMethodSynchronous( $info = $conduit->callMethodSynchronous(
'paste.create', 'paste.create',
array( array(
'content' => file_get_contents('php://stdin'), 'content' => file_get_contents('php://stdin'),
'title' => $this->getTitle(), 'title' => $this->title,
'language' => $this->getLanguage(), 'language' => $this->language,
)); ));
if ($this->getArgument('json')) { if ($this->getArgument('json')) {