Summary: Ref T4338. Currently, there's no diagnostic command to execute mirroring (so I can't give users an easy command to run), and it's roughly the last piece of real logic left in the PullLocal daemon. Separate mirroring out, and provide `bin/repository mirror`. Test Plan: - Ran `bin/repository mirror` to mirror a repository. - Ran PullLocalDaemon and verified it also continued mirroring normally. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T4338 Differential Revision: https://secure.phabricator.com/D8066
69 lines
1.2 KiB
PHP
69 lines
1.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @task config Configuring Repository Engines
|
|
* @task internal Internals
|
|
*/
|
|
abstract class PhabricatorRepositoryEngine {
|
|
|
|
private $repository;
|
|
private $verbose;
|
|
|
|
/**
|
|
* @task config
|
|
*/
|
|
public function setRepository(PhabricatorRepository $repository) {
|
|
$this->repository = $repository;
|
|
return $this;
|
|
}
|
|
|
|
|
|
/**
|
|
* @task config
|
|
*/
|
|
protected function getRepository() {
|
|
if ($this->repository === null) {
|
|
throw new Exception("Call setRepository() to provide a repository!");
|
|
}
|
|
|
|
return $this->repository;
|
|
}
|
|
|
|
|
|
/**
|
|
* @task config
|
|
*/
|
|
public function setVerbose($verbose) {
|
|
$this->verbose = $verbose;
|
|
return $this;
|
|
}
|
|
|
|
|
|
/**
|
|
* @task config
|
|
*/
|
|
public function getVerbose() {
|
|
return $this->verbose;
|
|
}
|
|
|
|
|
|
public function getViewer() {
|
|
return PhabricatorUser::getOmnipotentUser();
|
|
}
|
|
|
|
|
|
/**
|
|
* @task internal
|
|
*/
|
|
protected function log($pattern /* ... */) {
|
|
if ($this->getVerbose()) {
|
|
$console = PhutilConsole::getConsole();
|
|
$argv = func_get_args();
|
|
array_unshift($argv, "%s\n");
|
|
call_user_func_array(array($console, 'writeOut'), $argv);
|
|
}
|
|
return $this;
|
|
}
|
|
|
|
}
|