42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
|
"""
|
||
|
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()
|
||
|
)
|