summaryrefslogtreecommitdiffstats
path: root/version.py
diff options
context:
space:
mode:
Diffstat (limited to 'version.py')
-rwxr-xr-xversion.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/version.py b/version.py
new file mode 100755
index 0000000000..7da2d5a459
--- /dev/null
+++ b/version.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+import time
+
+from datetime import datetime,timezone
+from shutil import which
+from subprocess import check_output
+
+srcdir = os.path.dirname(os.path.abspath(sys.argv[0]))
+git_dir = os.path.join(srcdir, ".git")
+git = which('git')
+
+if git and os.path.exists(git_dir):
+ version = check_output([git, "-C", srcdir, "describe", "--always", "--tags",
+ "--dirty"], encoding="UTF-8")
+ version = version[1:].strip()
+else:
+ version_path = os.path.join(srcdir, "VERSION")
+ with open(version_path, "r") as f:
+ version = f.readline().strip()
+
+if len(sys.argv) < 2:
+ print(version)
+ sys.exit()
+
+date = datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
+if date == "":
+ date = datetime.now(timezone.utc).astimezone()
+date_str = date.strftime("%a %b %d %I:%M:%S %Y")
+
+NEW_REVISION = "#define VERSION \"" + version + "\"\n"
+OLD_REVISION = ""
+BUILDDATE = "#define BUILDDATE \"" + date_str + "\"\n"
+MPVCOPYRIGHT = "#define MPVCOPYRIGHT \"Copyright \u00A9 2000-2021 mpv/MPlayer/mplayer2 projects\"" + "\n"
+
+if os.path.isfile(sys.argv[1]):
+ with open(sys.argv[1], "r") as f:
+ OLD_REVISION = f.readline()
+
+if NEW_REVISION != OLD_REVISION:
+ with open(sys.argv[1], "w", encoding="utf-8") as f:
+ f.writelines([NEW_REVISION, BUILDDATE, MPVCOPYRIGHT])
+