[tools] add tag message and small refactor (#49)

* [tools] add tag message and small refactor

* [tools] refactor review nits

* [tools] check lengths of renamed lists in create_tag
This commit is contained in:
Riesi 2022-11-30 15:26:04 +01:00 committed by GitHub
parent 937b763b8a
commit 94848cabcd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 34 additions and 15 deletions

View File

@ -32,6 +32,7 @@ import sys
def delete_graphics(name): def delete_graphics(name):
"""Delete each PNG file in name""" """Delete each PNG file in name"""
for file in name: for file in name:
file = file.removeprefix('svg/').removesuffix('.svg')
for directory in glob.glob(f"./png/**/{file}.png", recursive=True): for directory in glob.glob(f"./png/**/{file}.png", recursive=True):
print(f"deleting: {directory}") print(f"deleting: {directory}")
os.remove(directory) os.remove(directory)
@ -73,16 +74,31 @@ def git_commit_raster():
stream = os.popen('git commit -m "[png] generate PNGs"') stream = os.popen('git commit -m "[png] generate PNGs"')
print_pipe(stream.read()) print_pipe(stream.read())
# create a new tag # create a new tag with a description containing the added, modified, deleted and renamed files
def create_tag(): def create_tag(added, modified, deleted, renamed_old, renamed_new):
"""Creates a new git tag and names it appropriately""" """Creates a new git tag and names it appropriately"""
if len(renamed_old) != len(renamed_new):
raise Exception("Mismatch of renamed_old/renamed_new length!")
# get tags # get tags
stream = os.popen('git tag -l "auto-v*"') stream = os.popen('git tag -l "auto-v*"')
output = stream.read() output = stream.read()
tags = output.split('\n') tags = output.split('\n')
tags.remove('') tags.remove('')
# create tag message
added = '\n'.join([x.removeprefix('svg/').removesuffix('.svg') for x in added])
modified = '\n'.join([x.removeprefix('svg/').removesuffix('.svg') for x in modified])
deleted = '\n'.join([x.removeprefix('svg/').removesuffix('.svg') for x in deleted])
i = 0
renamed = ''
while i < len(renamed_old):
old = renamed_old[i].removeprefix('svg/').removesuffix('.svg')
new = renamed_new[i].removeprefix('svg/').removesuffix('.svg')
renamed = f'{renamed}\n{old} -> {new}'
i+=1
message = f'**New:**\n{added}\n\n**Updated:**\n{modified}\n\n**Renamed:**{renamed}\n\n**Removed:**\n{deleted}'
# create new tag # create new tag
stream = os.popen(f"git tag auto-v{len(tags)}") stream = os.popen(f"git tag auto-v{len(tags)} -m '{message}'")
print_pipe(stream.read()) print_pipe(stream.read())
# -------------------------------# # -------------------------------#
@ -135,7 +151,8 @@ def main():
additions = list() additions = list()
modifications = list() modifications = list()
deleted = list() deleted = list()
renamed = list() renamed_old = list()
renamed_new = list()
for s in reversed(files): for s in reversed(files):
split_file = s.split('\t') split_file = s.split('\t')
if 'A' == split_file[0]: if 'A' == split_file[0]:
@ -143,31 +160,33 @@ def main():
elif 'M' == split_file[0]: elif 'M' == split_file[0]:
modifications.append(split_file[1]) modifications.append(split_file[1])
elif 'D' == split_file[0]: elif 'D' == split_file[0]:
deleted.append(split_file[1].removeprefix('svg/').removesuffix('.svg')) deleted.append(split_file[1])
elif re.match(r"R[0-9]+", split_file[0]): elif re.match(r"R[0-9]+", split_file[0]):
deleted.append(split_file[1].removeprefix('svg/').removesuffix('.svg')) renamed_old.append(split_file[1])
modifications.append(split_file[2]) renamed_new.append(split_file[2])
else: else:
print(f'Unrecognized git action: {split_file}') print(f'Unrecognized git action: {split_file}')
sys.exit(1) sys.exit(1)
# print('A:' + str(additions))
# print('M:' + str(modifications))
# print('D:' + str(deleted))
# print('R[0-9]+:' + str(renamed))
delete_graphics(deleted)
git_add_raster(deleted)
print('\nAdditions:') print('\nAdditions:')
raster_graphics(additions, sizes) raster_graphics(additions, sizes)
git_add_raster(additions) git_add_raster(additions)
print('\nModifications:') print('\nModifications:')
raster_graphics(modifications, sizes) raster_graphics(modifications, sizes)
git_add_raster(modifications) git_add_raster(modifications)
print('\nRenamed:')
delete_graphics(renamed_old)
raster_graphics(renamed_new)
git_add_raster(renamed_old)
git_add_raster(renamed_new)
print('\nDeletions:')
delete_graphics(deleted)
git_add_raster(deleted)
# commit and tag # commit and tag
git_commit_raster() git_commit_raster()
create_tag() create_tag(additions, modifications, deleted, renamed_old, renamed_new)
# if "all" parameter was specified, raster all svgs including subfolders # if "all" parameter was specified, raster all svgs including subfolders
if args.all: if args.all:
files = list(glob.glob('svg/**/*.svg', recursive=True)) files = list(glob.glob('svg/**/*.svg', recursive=True))