Add project-tools #142

Merged
Francesco Siddi merged 26 commits from ZedDB/blender-studio-pipeline:project-helper-tools into main 2023-08-31 20:33:04 +02:00
Showing only changes of commit 2f31d4f487 - Show all commits

View File

@ -0,0 +1,64 @@
#!/usr/bin/env python3
import filecmp
import os
from pathlib import Path
import shutil
# The project base path (where shared, local and svn are located)
PATH_BASE = Path(__file__).resolve().parent.parent.parent
PATH_ARTIFACTS = PATH_BASE / 'shared' / 'artifacts' / 'blender'
PATH_PREVIOUS = PATH_ARTIFACTS / 'previous'
BACKUP_DIR = PATH_PREVIOUS / '00'
if not BACKUP_DIR.exists():
BACKUP_DIR.mkdir()
# Backup the current files
for file in PATH_ARTIFACTS.iterdir():
if file.is_file():
shutil.copy(file, BACKUP_DIR)
cur_date_file = PATH_ARTIFACTS / "download_date"
paths = sorted(Path(PATH_PREVIOUS).iterdir())
print("Available builds:\n")
for index, path in enumerate(paths):
date_file = path / "download_date"
if not date_file.exists():
print("ERROR: The backup folder %s is missing a datefile, exiting!" % path)
with open(date_file, 'r') as file:
date = file.read().rstrip()
if filecmp.cmp(cur_date_file, date_file):
print("\033[1mID:\033[0m\033[100m%3i (%s) <current>\033[0m" % (index, date))
else:
print("\033[1mID:\033[0m%3i (%s)" % (index, date))
print()
input_error_mess = "Please select an index between 0 and " + str(len(paths) - 1)
selected_index = 0
while True:
index_str = input("Select which Blender build number to switch to. (press ENTER to confirm): ")
if not index_str.isnumeric():
print(input_error_mess)
continue
index = int(index_str)
if index >= 0 and index < len(paths):
selected_index = index
break
print(input_error_mess)
# Remove current files and move the selected snapshot into current folder
for file in PATH_ARTIFACTS.iterdir():
if file.is_file():
os.remove(file)
for file in paths[selected_index].iterdir():
# Everything should be a file in here but have this check for sanity eitherway.
if file.is_file():
shutil.copy(file, PATH_ARTIFACTS)