X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/3cd888fdd3bcd9f8d8ed47acf1c3420c09f4030d..aded6cfacd4a0aea061a120997880c3e3d5a9aed:/src/phorkie/SetupCheck.php diff --git a/src/phorkie/SetupCheck.php b/src/phorkie/SetupCheck.php index c459e2a..32fb79e 100644 --- a/src/phorkie/SetupCheck.php +++ b/src/phorkie/SetupCheck.php @@ -24,8 +24,8 @@ class SetupCheck { $cfg = $GLOBALS['phorkie']['cfg']; $this->writableDirs = array( - 'gitdir' => $cfg['gitdir'], - 'workdir' => $cfg['workdir'], + 'gitdir' => Tools::foldPath($cfg['gitdir']), + 'workdir' => Tools::foldPath($cfg['workdir']), ); $this->elasticsearch = $cfg['elasticsearch']; } @@ -39,17 +39,28 @@ class SetupCheck $sc->checkGit(); $sc->checkDatabase(); $sc->checkMimeTypeDetection(); + $sc->checkRemoteForking(); return $sc->messages; } public function checkConfigFiles() { + if (!isset($GLOBALS['phorkie']['cfgfiles']) + || count($GLOBALS['phorkie']['cfgfiles']) == 0 + ) { + $this->info('No config files registered'); + return; + } + foreach ($GLOBALS['phorkie']['cfgfiles'] as $file => $loaded) { if ($loaded) { - $this->ok('Loaded config file: ' . $file); + $this->ok('Loaded config file: ' . Tools::foldPath($file)); } else { - $this->info('Possible config file: ' . $file . ' (not loaded)'); + $this->info( + 'Possible config file: ' . Tools::foldPath($file) + . ' (not loaded)' + ); } } } @@ -97,8 +108,9 @@ class SetupCheck if ($retval !== 0) { $this->fail('Running git executable failed.'); } - if (!preg_match('#^git version ([0-9.]+(rc[0-9]+)?)$#', $line, $matches)) { + if (!preg_match('#^git version ([0-9.]+(rc[0-9]+)?)(?: \(Apple Git-\d+\))?$#', $line, $matches)) { $this->fail('git version output format unexpected: ' . $line); + return; } if (version_compare($matches[1], '1.7.5') < 0) { $this->fail( @@ -128,8 +140,25 @@ class SetupCheck public function checkMimeTypeDetection() { $rp = new Repository_Post(); - if ($rp->getType('') != 'php') { - $this->fail('MIME type detection fails'); + $type = $rp->getType('', true); + if ($type != 'php') { + $msg = 'MIME type detection fails'; + if ($type instanceof \PEAR_Error) { + $msg .= '. Error: ' . $type->getMessage(); + } + $this->fail($msg); + } + } + + public function checkRemoteForking() + { + if (!isset($GLOBALS['phorkie']['cfg']['git']['public']) + || $GLOBALS['phorkie']['cfg']['git']['public'] == '' + ) { + $this->fail( + 'No public git URL prefix configured.' + . ' Remote forking will not work' + ); } }