diff options
author | Andrew Dolgov <[email protected]> | 2016-03-23 19:08:38 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2016-03-23 19:08:38 +0300 |
commit | 7843453c00d5cb5954c9674a9f08008224e27d1e (patch) | |
tree | e4bb3ccb08af7439d1e8563073cd0e7ab47fccc0 /include | |
parent | b6b5554db4e6a04a5b6be9c8edd9016e3e4c4919 (diff) |
version: do not hardcode master branch
Diffstat (limited to 'include')
-rw-r--r-- | include/version.php | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/include/version.php b/include/version.php index dfef9da57..71cf3dc75 100644 --- a/include/version.php +++ b/include/version.php @@ -5,18 +5,37 @@ date_default_timezone_set('UTC'); $root_dir = dirname(dirname(__FILE__)); - if (is_dir("$root_dir/.git") && file_exists("$root_dir/.git/refs/heads/master")) { + if (is_dir("$root_dir/.git") && file_exists("$root_dir/.git/HEAD")) { + $head = trim(file_get_contents("$root_dir/.git/HEAD")); - $suffix = substr(trim(file_get_contents("$root_dir/.git/refs/heads/master")), 0, 7); - $timestamp = filemtime("$root_dir/.git/refs/heads/master"); + if ($head) { + $matches = array(); - define("GIT_VERSION_HEAD", $suffix); - define("GIT_VERSION_TIMESTAMP", $timestamp); + if (preg_match("/^ref: (.*)/", $head, $matches)) { + $ref = $matches[1]; - return VERSION_STATIC . " ($suffix)"; - } else { - return VERSION_STATIC; + $suffix = substr(trim(file_get_contents("$root_dir/.git/$ref")), 0, 7); + $timestamp = filemtime("$root_dir/.git/$ref"); + + define("GIT_VERSION_HEAD", $suffix); + define("GIT_VERSION_TIMESTAMP", $timestamp); + + return VERSION_STATIC . " ($suffix)"; + + } else { + $suffix = trim($head, 0, 7); + $timestamp = filemtime("$root_dir/.git/HEAD"); + + define("GIT_VERSION_HEAD", $suffix); + define("GIT_VERSION_TIMESTAMP", $timestamp); + + return VERSION_STATIC . " ($suffix)"; + } + } } + + return VERSION_STATIC; + } define('VERSION', get_version()); |