summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/constants.php2
-rw-r--r--app/functions.php26
2 files changed, 27 insertions, 1 deletions
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