knx/examples/knxPython/write_version_info.py
2019-12-12 21:42:51 +01:00

50 lines
1.2 KiB
Python

import subprocess
import time
import sys
import socket
def get_version_info():
try:
git_revision = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode("utf-8") .split("\n")[0]
git_branch = subprocess.check_output(["git", "rev-parse","--abbrev-ref", "HEAD"]).decode("utf-8").split("\n")[0]
except (subprocess.CalledProcessError, OSError):
git_revision = ""
git_branch = "non-git"
def read_version():
with open("VERSION") as f:
return f.readline().strip()
build_datetime = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime())
version_number = read_version()
hostname = socket.gethostname()
return git_revision, git_branch, build_datetime, version_number, hostname
def print_version_number():
sys.stdout.write(get_version_info()[3])
if __name__ =="__main__":
output_file = sys.argv[1]
with open(output_file, "w") as fout:
fout.write("""#pragma once
namespace knx{{
namespace version{{
auto constexpr git_revision = u8"{0}";
auto constexpr git_branch = u8"{1}";
auto constexpr build_datetime = u8"{2}";
auto constexpr version_number = u8"{3}";
auto constexpr build_hostname = u8"{4}";
}}
}}
""".format(*get_version_info()))