Summary: Ref T5655. Test Plan: `grep` Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: Korvin, epriestley Maniphest Tasks: T5655 Differential Revision: https://secure.phabricator.com/D11185
40 lines
949 B
PHP
40 lines
949 B
PHP
<?php
|
|
|
|
final class DiffusionGitUploadPackSSHWorkflow extends DiffusionGitSSHWorkflow {
|
|
|
|
public function didConstruct() {
|
|
$this->setName('git-upload-pack');
|
|
$this->setArguments(
|
|
array(
|
|
array(
|
|
'name' => 'dir',
|
|
'wildcard' => true,
|
|
),
|
|
));
|
|
}
|
|
|
|
protected function executeRepositoryOperations() {
|
|
$args = $this->getArgs();
|
|
$path = head($args->getArg('dir'));
|
|
$repository = $this->loadRepository($path);
|
|
|
|
$command = csprintf('git-upload-pack -- %s', $repository->getLocalPath());
|
|
$command = PhabricatorDaemon::sudoCommandAsDaemonUser($command);
|
|
|
|
$future = id(new ExecFuture('%C', $command))
|
|
->setEnv($this->getEnvironment());
|
|
|
|
$err = $this->newPassthruCommand()
|
|
->setIOChannel($this->getIOChannel())
|
|
->setCommandChannelFromExecFuture($future)
|
|
->execute();
|
|
|
|
if (!$err) {
|
|
$this->waitForGitClient();
|
|
}
|
|
|
|
return $err;
|
|
}
|
|
|
|
}
|