summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/just-lock.py14
1 files changed, 13 insertions, 1 deletions
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