From 42c368cb01ae1edb36726a14f3a25539dd3ce7f6 Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 12 Mar 2016 10:09:49 -0500 Subject: Show version number from git-archive --- app/constants.php | 2 +- app/functions.php | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/constants.php b/app/constants.php index 4201e6e4..a09aac19 100644 --- a/app/constants.php +++ b/app/constants.php @@ -8,7 +8,7 @@ defined('DEBUG_FILE') or define('DEBUG_FILE', getenv('DEBUG_FILE') ?: __DIR__.DI defined('PLUGINS_DIR') or define('PLUGINS_DIR', __DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'plugins'); // Application version -defined('APP_VERSION') or define('APP_VERSION', 'master'); +defined('APP_VERSION') or define('APP_VERSION', build_app_version('$Format:%d$', '$Format:%H$')); // Database driver: sqlite, mysql or postgres defined('DB_DRIVER') or define('DB_DRIVER', 'sqlite'); diff --git a/app/functions.php b/app/functions.php index 0c611f95..b759763f 100644 --- a/app/functions.php +++ b/app/functions.php @@ -2,6 +2,32 @@ use Kanboard\Core\Translator; +/** + * Build version number from git-archive output + * + * @param string $ref + * @param string $commit_hash + * @return string + */ +function build_app_version($ref, $commit_hash) +{ + $version = 'master'; + + if ($ref !== '$Format:%d$') { + $tag = preg_replace('/\s*\(.*tag:\sv([^,]+).*\)/i', '\1', $ref); + + if (!is_null($tag) && $tag !== $ref) { + return $tag; + } + } + + if ($commit_hash !== '$Format:%H$') { + $version .= '.'.$commit_hash; + } + + return $version; +} + /** * Translate a string * -- cgit v1.2.3