parent
13085776d8
commit
b240e0e6bb
|
@ -25,24 +25,46 @@ class Version
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$gitDir = Icinga::app()->getBaseDir('.git');
|
$gitCommitId = static::getGitHead(Icinga::app()->getBaseDir());
|
||||||
$gitHead = @file_get_contents($gitDir . DIRECTORY_SEPARATOR . 'HEAD');
|
if ($gitCommitId !== false) {
|
||||||
if (false !== $gitHead) {
|
$version['gitCommitID'] = $gitCommitId;
|
||||||
$matches = array();
|
|
||||||
if (@preg_match('/(?<!.)ref:\s+(.+?)$/ms', $gitHead, $matches)) {
|
|
||||||
$gitCommitID = @file_get_contents($gitDir . DIRECTORY_SEPARATOR . $matches[1]);
|
|
||||||
} else {
|
|
||||||
$gitCommitID = $gitHead;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false !== $gitCommitID) {
|
|
||||||
$matches = array();
|
|
||||||
if (@preg_match('/(?<!.)(?P<gitCommitID>[0-9a-f]+)$/ms', $gitCommitID, $matches)) {
|
|
||||||
return array_merge($version, $matches);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $version;
|
return $version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the hexadecimal ID of the HEAD commit of the Git repository in $repoDir
|
||||||
|
*
|
||||||
|
* @param string $repoDir
|
||||||
|
* @param bool $bare Whether the repository has been created with
|
||||||
|
* $ git init|clone --bare
|
||||||
|
*
|
||||||
|
* @return string|bool false if not available
|
||||||
|
*/
|
||||||
|
public static function getGitHead($repoDir, $bare = false)
|
||||||
|
{
|
||||||
|
if (! $bare) {
|
||||||
|
$repoDir .= DIRECTORY_SEPARATOR . '.git';
|
||||||
|
}
|
||||||
|
|
||||||
|
$gitHead = @ file_get_contents($repoDir . DIRECTORY_SEPARATOR . 'HEAD');
|
||||||
|
if ($gitHead !== false) {
|
||||||
|
$matches = array();
|
||||||
|
if (preg_match('/(?<!.)ref:\s+(.+?)$/ms', $gitHead, $matches)) {
|
||||||
|
$gitCommitID = @ file_get_contents($repoDir . DIRECTORY_SEPARATOR . $matches[1]);
|
||||||
|
} else {
|
||||||
|
$gitCommitID = $gitHead;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($gitCommitID !== false) {
|
||||||
|
$matches = array();
|
||||||
|
if (preg_match('/(?<!.)([0-9a-f]+)$/ms', $gitCommitID, $matches)) {
|
||||||
|
return $matches[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue