T-IOT-901_convoyor/scripts/get_additionnal_envs.py

42 lines
1.1 KiB
Python
Raw Normal View History

2023-08-29 10:04:07 +02:00
"""
Add additionnal ENVs to the program
GIT_COMMIT: the git commit ID
GIT_BRANCH: the current git branch
GIT_TAG: the current git tag or "dev"
_note: to get the full list of env at build time run: `pio run -t envdump > pouet.log` and look at "BUILD_FLAGS_
"""
import subprocess
Import("env")
def run_command(command):
"""
run a command on the system
"""
return subprocess.run(command, stdout=subprocess.PIPE, text=True).stdout
def get_additionnal_envs():
"""
get the git commit/branch/tag of the project and return them
"""
commit = run_command(["git", "rev-parse", "HEAD"])[:7]
branch = run_command(["git", "rev-parse", "--abbrev-ref", "HEAD"])
tag = run_command(["git", "tag", "-l", "--points-at", "HEAD"])
items = [
f"-D GIT_COMMIT=\\\"{commit}\\\"",
f"-D GIT_BRANCH=\\\"{branch.strip()}\\\""
]
if tag != "":
items.append(f"-D GIT_TAG=\\\"{tag.strip()}\\\"")
else:
items.append("-D GIT_TAG=\\\"dev\\\"")
return items
env.Append(
BUILD_FLAGS=get_additionnal_envs()
)