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

Provide a "loadFileDataCallback" for ArcanistBundle

Summary: See next diff for an explanation of this issue.

Test Plan: See next diff.

Reviewers: Makinde, btrahan, vrana, jungejason

Reviewed By: Makinde

CC: aran

Differential Revision: https://secure.phabricator.com/D2174
This commit is contained in:
epriestley 2012-04-09 17:34:45 -07:00
parent f3fc75fcb9
commit 5068e8ad56

View file

@ -31,6 +31,7 @@ final class ArcanistBundle {
private $baseRevision;
private $revisionID;
private $encoding;
private $loadFileDataCallback;
public function setConduit(ConduitClient $conduit) {
$this->conduit = $conduit;
@ -583,7 +584,16 @@ final class ArcanistBundle {
return implode("\n", $result);
}
public function setLoadFileDataCallback($callback) {
$this->loadFileDataCallback = $callback;
return $this;
}
private function getBlob($phid) {
if ($this->loadFileDataCallback) {
return call_user_func($this->loadFileDataCallback, $phid);
}
if ($this->diskPath) {
list($blob_data) = execx('tar xfO %s blobs/%s', $this->diskPath, $phid);
return $blob_data;
@ -599,7 +609,7 @@ final class ArcanistBundle {
return base64_decode($data_base64);
}
throw new Exception("Nowhere to load blob '{$phid} from!");
throw new Exception("Nowhere to load blob '{$phid}' from!");
}
private function buildBinaryChange(ArcanistDiffChange $change) {