1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-22 14:52:43 +00:00
mpv/version.py
Kacper Michajłow 13b7d7771f version.py: fix build date
- Use ctime() instead manual format string. Fixes 12-hour format (%I)
  without AM/PM (%p) specified. It is 24-hours now, as it should be.
- Avoid naive datetime object.
- Fix timestamp type, it is float in Python.
- Remove dummy fallback branch.
- Use f-strings for readability.
- Always rebuild version.h if repository is dirty.
2023-07-30 00:38:45 +00:00

43 lines
1.3 KiB
Python
Executable File

#!/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()
ts = float(os.environ.get('SOURCE_DATE_EPOCH', time.time()))
date = datetime.fromtimestamp(ts, timezone.utc)
OLD_REVISION = ""
NEW_REVISION = f'#define VERSION "{version}"'
BUILDDATE = f'#define BUILDDATE "{date.ctime()}"'
MPVCOPYRIGHT = f'#define MPVCOPYRIGHT "Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects"'
if os.path.isfile(sys.argv[1]):
with open(sys.argv[1], "r") as f:
OLD_REVISION = f.readline().strip()
if NEW_REVISION != OLD_REVISION or NEW_REVISION.endswith('dirty"'):
with open(sys.argv[1], "w", encoding="utf-8") as f:
f.writelines(f"{l}{os.linesep}" for l in [NEW_REVISION, BUILDDATE, MPVCOPYRIGHT])