self::VERSION); preg_match('/2.(\d+)\./', self::VERSION, $matches); $version['docVersion'] = isset($matches[1]) ? '2.' . $matches[1] : null; if (false !== ($appVersion = @file_get_contents(Icinga::app()->getApplicationDir('VERSION')))) { $matches = array(); if (@preg_match('/^(?P\w+) (?P\S+)/', $appVersion, $matches)) { return array_merge($version, $matches); } } $gitCommitId = static::getGitHead(Icinga::app()->getBaseDir()); if ($gitCommitId !== false) { $version['gitCommitID'] = $gitCommitId; } return $version; } /** * Get the current commit of the Git repository in the given path * * @param string $repo Path to the Git repository * @param bool $bare Whether the Git repository is bare * * @return string|bool False if not available */ public static function getGitHead($repo, $bare = false) { if (! $bare) { $repo .= '/.git'; } $head = @file_get_contents($repo . '/HEAD'); if ($head !== false) { if (preg_match('/^ref: (.+)/', $head, $matches)) { return @file_get_contents($repo . '/' . $matches[1]); } return $head; } return false; } }