Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F9583262
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/workflow/ArcanistPasteWorkflow.php b/src/workflow/ArcanistPasteWorkflow.php
index b94864ef..27981b62 100644
--- a/src/workflow/ArcanistPasteWorkflow.php
+++ b/src/workflow/ArcanistPasteWorkflow.php
@@ -1,151 +1,146 @@
<?php
/**
* Upload a chunk of text to the Paste application, or download one.
*/
final class ArcanistPasteWorkflow extends ArcanistWorkflow {
private $id;
private $language;
private $title;
private $json;
public function getWorkflowName() {
return 'paste';
}
public function getCommandSynopses() {
return phutil_console_format(<<<EOTEXT
**paste** [--title __title__] [--lang __language__] [--json]
**paste** __id__ [--json]
EOTEXT
);
}
public function getCommandHelp() {
return phutil_console_format(<<<EOTEXT
Supports: text
Share and grab text using the Paste application. To create a paste,
use stdin to provide the text:
$ cat list_of_ducks.txt | arc paste
To retrieve a paste, specify the paste ID:
$ arc paste P123
EOTEXT
);
}
public function getArguments() {
return array(
'title' => array(
'param' => 'title',
- 'help' => 'Title for the paste.',
+ 'help' => pht('Title for the paste.'),
),
'lang' => array(
'param' => 'language',
- 'help' => 'Language for syntax highlighting.',
+ 'help' => pht('Language for syntax highlighting.'),
),
'json' => array(
- 'help' => 'Output in JSON format.',
+ 'help' => pht('Output in JSON format.'),
),
'*' => 'argv',
);
}
public function requiresAuthentication() {
return true;
}
protected function didParseArguments() {
+ $this->json = $this->getArgument('json');
$this->language = $this->getArgument('lang');
$this->title = $this->getArgument('title');
- $this->json = $this->getArgument('json');
$argv = $this->getArgument('argv');
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) {
$id = $argv[0];
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');
if ($this->language || $this->title) {
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() {
-
if ($this->id) {
return $this->getPaste();
} else {
return $this->createPaste();
}
}
private function getPaste() {
$conduit = $this->getConduit();
$info = $conduit->callMethodSynchronous(
'paste.query',
array(
'ids' => array($this->id),
));
$info = head($info);
- if ($this->getJSON()) {
+ if ($this->json) {
echo json_encode($info)."\n";
} else {
echo $info['content'];
if (!preg_match('/\\n$/', $info['content'])) {
// 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";
}
}
return 0;
}
private function createPaste() {
$conduit = $this->getConduit();
- // Avoid confusion when people type "arc paste" with nothing else.
- $this->writeStatusMessage("Reading paste from stdin...\n");
+ if (!function_exists('posix_isatty') || posix_isatty(STDIN)) {
+ $this->writeStatusMessage("Reading paste from stdin...\n");
+ }
$info = $conduit->callMethodSynchronous(
'paste.create',
array(
- 'content' => file_get_contents('php://stdin'),
- 'title' => $this->getTitle(),
- 'language' => $this->getLanguage(),
+ 'content' => file_get_contents('php://stdin'),
+ 'title' => $this->title,
+ 'language' => $this->language,
));
if ($this->getArgument('json')) {
echo json_encode($info)."\n";
} else {
echo $info['objectName'].': '.$info['uri']."\n";
}
return 0;
}
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Oct 11, 09:16 (6 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
984098
Default Alt Text
(4 KB)
Attached To
Mode
R118 Arcanist - fork
Attached
Detach File
Event Timeline
Log In to Comment