From ecbbac78b9f17259e0198450796b341a7ce0d73c Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Tue, 17 Dec 2024 13:04:20 +0100 Subject: just-lock: Improve directory tree removal --- bin/just-lock.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'bin/just-lock.py') diff --git a/bin/just-lock.py b/bin/just-lock.py index 1db21f68..2ea25b8d 100755 --- a/bin/just-lock.py +++ b/bin/just-lock.py @@ -19,6 +19,7 @@ import shutil import subprocess import sys import tempfile +import time from argparse import ArgumentParser, ArgumentError from pathlib import Path @@ -101,6 +102,17 @@ def run_cmd(cmd: List[str], return result.stdout +def try_rmtree(tree: str) -> None: + """Safely remove a directory tree.""" + for _ in range(10): + try: + shutil.rmtree(tree) + return + except: + time.sleep(1.0) + fail("Failed to remove %s" % (tree, )) + + ### # Config utils ## @@ -549,7 +561,7 @@ def import_from_git(core_repos: Json, imports_entry: Json) -> Json: foreign_config, fail_context) # Clean up local fetch - shutil.rmtree(to_clean_up) + try_rmtree(to_clean_up) return core_repos -- cgit v1.2.3