27 lines
929 B
Python
27 lines
929 B
Python
|
import sh
|
||
|
import shutil
|
||
|
import subprocess
|
||
|
|
||
|
def modified_recipes(branch='origin/master'):
|
||
|
"""
|
||
|
Returns a set of modified recipes between the current branch and the one
|
||
|
in param.
|
||
|
"""
|
||
|
# using the contrib version on purpose rather than sh.git, since it comes
|
||
|
# with a bunch of fixes, e.g. disabled TTY, see:
|
||
|
# https://stackoverflow.com/a/20128598/185510
|
||
|
sh.contrib.git.fetch("origin", "master")
|
||
|
git_diff = sh.contrib.git.diff('--name-only', branch)
|
||
|
recipes = set()
|
||
|
for file_path in git_diff:
|
||
|
if 'recipes/' in file_path:
|
||
|
recipe = file_path.split('/')[1]
|
||
|
recipes.add(recipe)
|
||
|
return recipes
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
updated_recipes = " ".join(modified_recipes())
|
||
|
if updated_recipes != '':
|
||
|
subprocess.run(f"python3 toolchain.py build {updated_recipes}", shell=True, check=True)
|
||
|
else:
|
||
|
print("Nothing to do. No updated recipes.")
|