mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-01 18:30:59 +01:00
Raise a setup warning for missing or invalid local repository directory
Summary: I'm planning to add more detailed info to Diffusion itself, but catch the big issue here. Test Plan: Hit config issue locally, then resolved it. Reviewers: btrahan Reviewed By: btrahan CC: aran Differential Revision: https://secure.phabricator.com/D7439
This commit is contained in:
parent
d5bc8197ec
commit
f08908ff35
3 changed files with 49 additions and 9 deletions
|
@ -1740,6 +1740,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorSetupCheckPHPConfig' => 'applications/config/check/PhabricatorSetupCheckPHPConfig.php',
|
'PhabricatorSetupCheckPHPConfig' => 'applications/config/check/PhabricatorSetupCheckPHPConfig.php',
|
||||||
'PhabricatorSetupCheckPath' => 'applications/config/check/PhabricatorSetupCheckPath.php',
|
'PhabricatorSetupCheckPath' => 'applications/config/check/PhabricatorSetupCheckPath.php',
|
||||||
'PhabricatorSetupCheckPygment' => 'applications/config/check/PhabricatorSetupCheckPygment.php',
|
'PhabricatorSetupCheckPygment' => 'applications/config/check/PhabricatorSetupCheckPygment.php',
|
||||||
|
'PhabricatorSetupCheckRepositories' => 'applications/config/check/PhabricatorSetupCheckRepositories.php',
|
||||||
'PhabricatorSetupCheckStorage' => 'applications/config/check/PhabricatorSetupCheckStorage.php',
|
'PhabricatorSetupCheckStorage' => 'applications/config/check/PhabricatorSetupCheckStorage.php',
|
||||||
'PhabricatorSetupCheckTimezone' => 'applications/config/check/PhabricatorSetupCheckTimezone.php',
|
'PhabricatorSetupCheckTimezone' => 'applications/config/check/PhabricatorSetupCheckTimezone.php',
|
||||||
'PhabricatorSetupIssue' => 'applications/config/issue/PhabricatorSetupIssue.php',
|
'PhabricatorSetupIssue' => 'applications/config/issue/PhabricatorSetupIssue.php',
|
||||||
|
@ -4070,6 +4071,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorSetupCheckPHPConfig' => 'PhabricatorSetupCheck',
|
'PhabricatorSetupCheckPHPConfig' => 'PhabricatorSetupCheck',
|
||||||
'PhabricatorSetupCheckPath' => 'PhabricatorSetupCheck',
|
'PhabricatorSetupCheckPath' => 'PhabricatorSetupCheck',
|
||||||
'PhabricatorSetupCheckPygment' => 'PhabricatorSetupCheck',
|
'PhabricatorSetupCheckPygment' => 'PhabricatorSetupCheck',
|
||||||
|
'PhabricatorSetupCheckRepositories' => 'PhabricatorSetupCheck',
|
||||||
'PhabricatorSetupCheckStorage' => 'PhabricatorSetupCheck',
|
'PhabricatorSetupCheckStorage' => 'PhabricatorSetupCheck',
|
||||||
'PhabricatorSetupCheckTimezone' => 'PhabricatorSetupCheck',
|
'PhabricatorSetupCheckTimezone' => 'PhabricatorSetupCheck',
|
||||||
'PhabricatorSetupIssueExample' => 'PhabricatorUIExample',
|
'PhabricatorSetupIssueExample' => 'PhabricatorUIExample',
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class PhabricatorSetupCheckRepositories extends PhabricatorSetupCheck {
|
||||||
|
|
||||||
|
protected function executeChecks() {
|
||||||
|
$repo_path = PhabricatorEnv::getEnvConfig('repository.default-local-path');
|
||||||
|
|
||||||
|
if (!$repo_path) {
|
||||||
|
$summary = pht(
|
||||||
|
"The configuration option '%s' is not set.",
|
||||||
|
'repository.default-local-path');
|
||||||
|
$this->newIssue('repository.default-local-path.empty')
|
||||||
|
->setName(pht('Missing Repository Local Path'))
|
||||||
|
->setSummary($summary)
|
||||||
|
->addPhabricatorConfig('repository.default-local-path');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Filesystem::pathExists($repo_path)) {
|
||||||
|
$summary = pht(
|
||||||
|
"The path for local repositories does not exist, or is not ".
|
||||||
|
"readable by the webserver.");
|
||||||
|
$message = pht(
|
||||||
|
"The directory for local repositories (%s) does not exist, or is not ".
|
||||||
|
"readable by the webserver. Phabricator uses this directory to store ".
|
||||||
|
"information about repositories. If this directory does not exist, ".
|
||||||
|
"create it:\n\n".
|
||||||
|
"%s\n".
|
||||||
|
"If this directory exists, make it readable to the webserver. You ".
|
||||||
|
"can also edit the configuration below to use some other directory.",
|
||||||
|
phutil_tag('tt', array(), $repo_path),
|
||||||
|
phutil_tag('pre', array(), csprintf('$ mkdir -p %s', $repo_path)));
|
||||||
|
|
||||||
|
$this->newIssue('repository.default-local-path.empty')
|
||||||
|
->setName(pht('Missing Repository Local Path'))
|
||||||
|
->setSummary($summary)
|
||||||
|
->setMessage($message)
|
||||||
|
->addPhabricatorConfig('repository.default-local-path');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -21,15 +21,10 @@ final class PhabricatorRepositoryConfigOptions
|
||||||
pht("Default location to store local copies of repositories."))
|
pht("Default location to store local copies of repositories."))
|
||||||
->setDescription(
|
->setDescription(
|
||||||
pht(
|
pht(
|
||||||
"The default location in which to store local copies of ".
|
"The default location in which to store working copies and other ".
|
||||||
"repositories. Anything stored in this directory will be assumed ".
|
"data about repositories. Phabricator will control and manage ".
|
||||||
"to be under the control of Phabricator, which means that ".
|
"data here, so you should **not** choose an existing directory ".
|
||||||
"Phabricator will try to do some maintenance on working copies ".
|
"full of data you care about.")),
|
||||||
"if there are problems (such as a change to the remote origin ".
|
|
||||||
"url). This maintenance may include completely removing (and ".
|
|
||||||
"recloning) anything in this directory.\n\n".
|
|
||||||
"When set to null, this option is ignored (i.e. Phabricator will ".
|
|
||||||
"not fully control any working copies).")),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue