summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2015-01-09 12:17:06 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2015-01-09 12:18:44 +0000
commit8bddb0996c44ce8ce989359a7b4c9ff102466ef2 (patch)
tree1d3497bd5b0bd771b93aedcf535eda044520dc3b
parent9fe25bf02dceec04f0ffd6a05cc47146ceab9904 (diff)
downloadlorry-8bddb0996c44ce8ce989359a7b4c9ff102466ef2.tar.gz
Delete downloaded tarballs on failure
Previously if a tarball lorry failed, a 0-byte tar file would be kept around and subsequent calls to lorry would return success without actually importing anything.
-rwxr-xr-xlorry13
1 files changed, 9 insertions, 4 deletions
diff --git a/lorry b/lorry
index 127a1fb..77fc9c8 100755
--- a/lorry
+++ b/lorry
@@ -477,10 +477,15 @@ class Lorry(cliapp.Application):
self.progress('.. checking if we need to fetch %s' % basename)
if not os.path.exists(tardest):
self.progress('.. attempting to fetch.')
- with open(tardest, 'w') as tarfile:
- urlfile = urllib2.urlopen(spec['url'])
- tarfile.write(urlfile.read())
- urlfile.close()
+ try:
+ with open(tardest, 'w') as tarfile:
+ urlfile = urllib2.urlopen(spec['url'])
+ tarfile.write(urlfile.read())
+ urlfile.close()
+ except Exception as e:
+ if os.path.exists(tardest):
+ os.unlink(tardest)
+ raise
else:
self.progress('.. no need to run, nothing to do')
return