Page MenuHomePhabricator

D9981.id23988.diff
No OneTemporary

D9981.id23988.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -574,6 +574,7 @@
'DiffusionRequest' => 'applications/diffusion/request/DiffusionRequest.php',
'DiffusionResolveUserQuery' => 'applications/diffusion/query/DiffusionResolveUserQuery.php',
'DiffusionSSHGitReceivePackWorkflow' => 'applications/diffusion/ssh/DiffusionSSHGitReceivePackWorkflow.php',
+ 'DiffusionSSHGitUploadArchiveWorkflow' => 'applications/diffusion/ssh/DiffusionSSHGitUploadArchiveWorkflow.php',
'DiffusionSSHGitUploadPackWorkflow' => 'applications/diffusion/ssh/DiffusionSSHGitUploadPackWorkflow.php',
'DiffusionSSHGitWorkflow' => 'applications/diffusion/ssh/DiffusionSSHGitWorkflow.php',
'DiffusionSSHMercurialServeWorkflow' => 'applications/diffusion/ssh/DiffusionSSHMercurialServeWorkflow.php',
@@ -3287,6 +3288,7 @@
'DiffusionRepositoryRemarkupRule' => 'PhabricatorRemarkupRuleObject',
'DiffusionResolveUserQuery' => 'Phobject',
'DiffusionSSHGitReceivePackWorkflow' => 'DiffusionSSHGitWorkflow',
+ 'DiffusionSSHGitUploadArchiveWorkflow' => 'DiffusionSSHGitWorkflow',
'DiffusionSSHGitUploadPackWorkflow' => 'DiffusionSSHGitWorkflow',
'DiffusionSSHGitWorkflow' => 'DiffusionSSHWorkflow',
'DiffusionSSHMercurialServeWorkflow' => 'DiffusionSSHMercurialWorkflow',
diff --git a/src/applications/diffusion/ssh/DiffusionSSHGitUploadArchiveWorkflow.php b/src/applications/diffusion/ssh/DiffusionSSHGitUploadArchiveWorkflow.php
new file mode 100644
--- /dev/null
+++ b/src/applications/diffusion/ssh/DiffusionSSHGitUploadArchiveWorkflow.php
@@ -0,0 +1,40 @@
+<?php
+
+final class DiffusionSSHGitUploadArchiveWorkflow
+ extends DiffusionSSHGitWorkflow {
+
+ public function didConstruct() {
+ $this->setName('git-upload-archive');
+ $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-archive %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;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Mar 24 2025, 9:08 PM (6 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7709037
Default Alt Text
D9981.id23988.diff (2 KB)

Event Timeline