Path: blob/master/src/applications/differential/management/PhabricatorDifferentialExtractWorkflow.php
12256 views
<?php12final class PhabricatorDifferentialExtractWorkflow3extends PhabricatorDifferentialManagementWorkflow {45protected function didConstruct() {6$this7->setName('extract')8->setExamples('**extract** __commit__')9->setSynopsis(pht('Extract a diff from a commit.'))10->setArguments(11array(12array(13'name' => 'extract',14'wildcard' => true,15'help' => pht('Commit to extract.'),16),17));18}1920public function execute(PhutilArgumentParser $args) {21$viewer = $this->getViewer();2223$extract = $args->getArg('extract');2425if (!$extract) {26throw new PhutilArgumentUsageException(27pht('Specify a commit to extract the diff from.'));28}2930if (count($extract) > 1) {31throw new PhutilArgumentUsageException(32pht('Specify exactly one commit to extract.'));33}3435$extract = head($extract);3637$commit = id(new DiffusionCommitQuery())38->setViewer($viewer)39->withIdentifiers(array($extract))40->executeOne();4142if (!$commit) {43throw new PhutilArgumentUsageException(44pht(45'Commit "%s" is not valid.',46$extract));47}4849$diff = id(new DifferentialDiffExtractionEngine())50->setViewer($viewer)51->newDiffFromCommit($commit);5253$uri = PhabricatorEnv::getProductionURI($diff->getURI());5455echo tsprintf(56"%s\n\n %s\n",57pht('Extracted diff from "%s":', $extract),58$uri);59}606162}636465