]> git.ipfire.org Git - pakfire.git/commitdiff
Make sure downloaded (tar) files have a size greater than zero.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 28 Jan 2012 19:40:35 +0000 (20:40 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 28 Jan 2012 19:40:35 +0000 (20:40 +0100)
python/pakfire/downloader.py

index 8e32e3c5a88b905c11e5e96e23d1144f154b036c..f7f29c49e4288d442e7517f7e395945247f26fcd 100644 (file)
@@ -125,7 +125,7 @@ class SourceDownloader(object):
                for file in files:
                        filename = os.path.join(SOURCE_CACHE_DIR, file)
 
-                       if os.path.exists(filename):
+                       if os.path.exists(filename) and os.path.getsize(filename):
                                existant_files.append(filename)
                        else:
                                download_files.append(filename)
@@ -138,6 +138,8 @@ class SourceDownloader(object):
                                os.makedirs(SOURCE_CACHE_DIR)
 
                        for filename in download_files:
+                               self.grabber.urlgrab(os.path.basename(filename), filename=filename)
+
                                try:
                                        self.grabber.urlgrab(os.path.basename(filename), filename=filename)
                                except URLGrabError, e:
@@ -149,6 +151,14 @@ class SourceDownloader(object):
 
                                        raise DownloadError, "%s %s" % (os.path.basename(filename), e)
 
+                               # Check if the downloaded file was empty.
+                               if os.path.getsize(filename) == 0:
+                                       # Remove the file and raise an error.
+                                       os.unlink(filename)
+
+                                       raise DownloadError, _("Downloaded empty file: %s") \
+                                               % os.path.basename(filename)
+
                        log.info("")
 
                return existant_files + download_files