diff --git a/src/etc/snapshot.py b/src/etc/snapshot.py index 48e5e0bfd02..874baccb7b3 100644 --- a/src/etc/snapshot.py +++ b/src/etc/snapshot.py @@ -117,7 +117,13 @@ def local_rev_committer_date(): return local_rev_info("ci") def get_url_to_file(u,f): - subprocess.check_call(["curl", "-o", f, u]) + tmpf = f + '.tmp' # no security issue, just to stop partial download leaving a stale file + try: + subprocess.check_call(["curl", "-o", tmpf, u]) + except subprocess.CalledProcessError: + os.unlink(tmpf) + raise + os.rename(tmpf, f) def snap_filename_hash_part(snap): match = re.match(r".*([a-fA-F\d]{40}).tar.bz2$", snap)