summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2015-01-09 12:02:15 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2015-01-09 12:18:50 +0000
commitacf80a68ee41ec1d6bea531ea2fb00dc1227f2e3 (patch)
tree47fa37403262b00e50ec8e7b2c29719e10b7e19b
parent8bddb0996c44ce8ce989359a7b4c9ff102466ef2 (diff)
downloadlorry-acf80a68ee41ec1d6bea531ea2fb00dc1227f2e3.tar.gz
Redownload a tarball if it exists but is 0 bytes long
This is a safety measure. Commit 8bddb0996c44ce8ce989359a7b4c9ff102466ef2 should mean that this can't happen, but 'lorry' runs unattended so we really don't want it to break.
-rwxr-xr-xlorry8
1 files changed, 7 insertions, 1 deletions
diff --git a/lorry b/lorry
index 77fc9c8..d28d064 100755
--- a/lorry
+++ b/lorry
@@ -30,6 +30,12 @@ __version__ = '0.0'
lorry_path = os.path.realpath(__file__)
+
+def file_missing_or_empty(filename):
+ ''' A more comprehensive alternative to os.path.exists(). '''
+ return (not os.path.isfile(filename)) or (os.path.getsize(filename) <= 0)
+
+
def quote_url(url):
''' Convert URIs to strings that only contain digits, letters, % and _.
@@ -475,7 +481,7 @@ class Lorry(cliapp.Application):
basename = os.path.basename(url_path)
tardest = os.path.join(dirname, basename)
self.progress('.. checking if we need to fetch %s' % basename)
- if not os.path.exists(tardest):
+ if file_missing_or_empty(tardest):
self.progress('.. attempting to fetch.')
try:
with open(tardest, 'w') as tarfile: