YouTubeDownloader v1.1.2
YouTube content downloader
Loading...
Searching...
No Matches
generate_git_version.py
Go to the documentation of this file.
1"""!
2********************************************************************************
3@file generate_git_version.py
4@brief Utility script to generate a python file containing the git
5 short SHA as a variable for the executable.
6 Called within the build process (generate_executable.py).
7********************************************************************************
8"""
9
10import sys
11import os
12import logging
13import git
14
15log = logging.getLogger("GenerateGitVersion")
16
17GIT_VERSION_FILE_NAME = "git_version.py"
18
19FILE_HEADER = f'''"""!
20********************************************************************************
21@file {GIT_VERSION_FILE_NAME}
22@brief Defines Git version
23********************************************************************************
24"""
25
26'''
27
28
29def generate_git_version_file(s_workpath: str) -> None:
30 """!
31 @brief Generate git version file
32 @param s_workpath : workpath
33 """
34 s_git_version_file = os.path.join(s_workpath, GIT_VERSION_FILE_NAME)
35
36 log.info("Generating git version file %s", s_git_version_file)
37 if not os.path.exists(s_workpath):
38 os.mkdir(s_workpath)
39 else:
40 log.info("Directory %s already exists", s_workpath)
41 repo = git.Repo(search_parent_directories=True)
42 sha = repo.head.commit.hexsha
43 short_sha = repo.git.rev_parse(sha, short=8)
44 with open(s_git_version_file, mode="w", encoding="utf-8") as f:
45 code_content = FILE_HEADER
46 code_content += f"GIT_SHORT_SHA = '{short_sha}'\n"
47 f.write(code_content)
48
49
50if __name__ == "__main__":
51 workpath = sys.argv[1]
52 generate_git_version_file(workpath)
53 sys.exit()
None generate_git_version_file(str s_workpath)
Generate git version file.