Fixed up Unreal cleanup script. Included folders and files that might be included with source control, removed some configured paths. Tidied up script.

This commit is contained in:
Brian Ernst 2025-11-10 13:56:12 -08:00
parent 229bcdb9c2
commit 9e74109604

View file

@ -24,17 +24,18 @@ ignore_folders = {
'.git' '.git'
} }
# NOTE: These are recursively deleted.
dirs_to_delete = { dirs_to_delete = {
".idea",
".vs", ".vs",
"Binaries",
"DerivedDataCache", "DerivedDataCache",
"Intermediate", "Intermediate",
"Saved", "Saved",
} }
# NOTE: These are recursively deleted.
# Be careful not to mark for deletion files that are included with your version
# control.
files_to_delete = { files_to_delete = {
".vsconfig",
"*.sln",
} }
def get_file_directory(): def get_file_directory():
@ -54,12 +55,14 @@ def clean_unreal_temps(dry_run = False, verbose = False, quiet = False):
if not quiet: if not quiet:
print(f"Iterating {target_path} for directories and files to cleanup{', doing a dry-run ' if dry_run else ''}...") print(f"Iterating {target_path} for directories and files to cleanup{', doing a dry-run ' if dry_run else ''}...")
# TODO: If not doing a dry run could give people a 5+ second countdown or something to cancel the script. # TODO: If not doing a dry run could give people a 5+ second countdown or
# something to cancel the script.
start = time.time() start = time.time()
counted_iterated = 0 counted_iterated = 0
if len(dirs_to_delete) or len(files_to_delete):
for root, dirs, files, in os.walk(target_path): for root, dirs, files, in os.walk(target_path):
counted_iterated += 1 counted_iterated += 1
@ -69,6 +72,7 @@ def clean_unreal_temps(dry_run = False, verbose = False, quiet = False):
root_path = pathlib.Path(root) root_path = pathlib.Path(root)
if len(dirs_to_delete) or len(ignore_folders):
for dir in reversed(dirs): for dir in reversed(dirs):
if dir in ignore_folders: if dir in ignore_folders:
dirs.remove(dir) dirs.remove(dir)
@ -98,6 +102,7 @@ def clean_unreal_temps(dry_run = False, verbose = False, quiet = False):
else: else:
print(f" Deleted: {dir_path}") print(f" Deleted: {dir_path}")
if len(files_to_delete):
for file in files: for file in files:
if not any(pathlib.PurePath(file).match(pattern) for pattern in files_to_delete): if not any(pathlib.PurePath(file).match(pattern) for pattern in files_to_delete):
continue continue
@ -111,9 +116,9 @@ def clean_unreal_temps(dry_run = False, verbose = False, quiet = False):
if verbose and not quiet: if verbose and not quiet:
if dry_run: if dry_run:
print(f" Pretend Deleted: {dir_path}") print(f" Pretend Deleted: {file_path}")
else: else:
print(f" Deleted: {dir_path}") print(f" Deleted: {file_path}")
# Done, summarize everything. # Done, summarize everything.
if not quiet: if not quiet:
@ -126,10 +131,15 @@ def clean_unreal_temps(dry_run = False, verbose = False, quiet = False):
print(f" {prefix} {count_dirs_deleted} director{'ies' if count_dirs_deleted != 1 else 'y'}, {count_files_deleted} file{'s' if count_files_deleted != 1 else ''}. Iterated {counted_iterated} paths.") print(f" {prefix} {count_dirs_deleted} director{'ies' if count_dirs_deleted != 1 else 'y'}, {count_files_deleted} file{'s' if count_files_deleted != 1 else ''}. Iterated {counted_iterated} paths.")
# TODO: Add up the file size deleted (including from deleted folders)
# in a verbose run, or have that as an extra param.
if count_dirs_deleted > 0: if count_dirs_deleted > 0:
print(f" (NOTE: Number of {'potentially ' if dry_run else ''}deleted files does not currently include a count of files from a deleted directory.)") print(f" (NOTE: Number of {'potentially ' if dry_run else ''}deleted files does not include files from a deleted directory.)")
print(f" Done. Finished in {str(time.time() - start)}s") print(f" Done. Finished in {str(time.time() - start)}s")
else:
print(" Skipped. Nothing configured to be deleted.")
if __name__ == "__main__": if __name__ == "__main__":