Tom Willemse
bf97e83d24
This script does what was previously done by the git hook script. It takes the commit before the push and the one after the push and lists the directories that have been affected in those commits. This script doesn't yet start an actual process for processing the directories, it just prints what it thinks a command line might look like.
28 lines
888 B
Python
Executable file
28 lines
888 B
Python
Executable file
#!/usr/bin/env python
|
|
|
|
from os import getenv
|
|
from os.path import dirname
|
|
from re import match
|
|
from shlex import quote
|
|
from subprocess import run
|
|
|
|
commit_before_sha = getenv('CI_COMMIT_BEFORE_SHA')
|
|
commit_sha = getenv('CI_COMMIT_SHA')
|
|
commit_ref_name = getenv('CI_COMMIT_REF_NAME')
|
|
directories = set()
|
|
|
|
cmd = 'git clone https://code.ryuslash.org/ryuslash/git-lfs-test.git .'
|
|
print(cmd)
|
|
run(cmd, shell=True)
|
|
|
|
if not match(r"^0+$", commit_before_sha):
|
|
cmd = f"git diff --name-only {quote(commit_before_sha)} {quote(commit_sha)}"
|
|
print(cmd)
|
|
process = run(cmd, shell=True, capture_output=True)
|
|
process_output = process.stdout.decode()
|
|
print(process_output)
|
|
for filename in process_output.strip().split('\n'):
|
|
directories.add(dirname(filename))
|
|
|
|
unix_directory_list = str.join(':', directories)
|
|
print(f'python tasks.py probe --directories={quote(unix_directory_list)}')
|