From ca8fe6446b52073b11e7717012e7e9dfa32f1938 Mon Sep 17 00:00:00 2001 From: Grahame Bowland Date: Tue, 17 Jan 2012 22:41:11 +0800 Subject: [PATCH] don't leave files that will not checksum if download is interrupted --- src/etc/snapshot.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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)