diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-03-12 10:09:49 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-03-12 10:09:49 -0500 |
commit | 42c368cb01ae1edb36726a14f3a25539dd3ce7f6 (patch) | |
tree | 197416413cebf406f617a7aeff3336c064109657 | |
parent | b061945f0e716a026fe722d5f0ba04f86982d3fc (diff) |
Show version number from git-archive
-rw-r--r-- | .gitattributes | 1 | ||||
-rw-r--r-- | app/constants.php | 2 | ||||
-rw-r--r-- | app/functions.php | 26 |
3 files changed, 28 insertions, 1 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..3870920d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +app/constants.php export-subst
\ No newline at end of file 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 @@ -3,6 +3,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 * * @return string |