Implemented a git operations module for automated git ops, based on subprocess.

This commit is contained in:
2024-05-29 15:17:09 +02:00
parent 146981379f
commit ef7c6c9efb

36
src/git_ops.py Normal file
View File

@ -0,0 +1,36 @@
import subprocess
def perform_git_operations(hdf5_upload):
status_command = ['git', 'status']
status = subprocess.run(status_command, capture_output=True, check=True)
if hdf5_upload:
upload_ext = ['.h5', '.yaml']
else:
upload_ext = ['.yaml']
files_to_add_list = extract_files_to_add(status.stdout, upload_ext)
if files_to_add_list:
add_files_to_git(files_to_add_list)
commit_changes('Updated hdf5 file with yaml review file.')
else:
print("There were no found h5 and yaml files, needing to be saved. This action will not have effect on the review process' commit history.")
def extract_files_to_add(git_status_output, upload_ext):
files_to_add_list = []
for line in git_status_output.splitlines():
tmp = line.decode("utf-8")
if 'modified' in tmp:
if any(ext in tmp for ext in upload_ext):
files_to_add_list.append(tmp.split()[1])
return files_to_add_list
def add_files_to_git(files_to_add_list):
add_command = ['git', 'add'] + files_to_add_list
subprocess.run(add_command, capture_output=True, check=True)
def commit_changes(message):
commit_command = ['git', 'commit', '-m', message]
commit_output = subprocess.run(commit_command, capture_output=True, check=True)
print(commit_output.stdout)