buildutils: allow fetching files from directory with pre-downloaded archives master
authorStefan Westerfeld <stefan@space.twc.de>
Fri, 12 Aug 2011 13:43:25 +0000 (15:43 +0200)
committerStefan Westerfeld <stefan@space.twc.de>
Fri, 12 Aug 2011 13:43:25 +0000 (15:43 +0200)
buildutils.py
config-template.py

index 63f5f3e..30c4b2a 100644 (file)
@@ -5,6 +5,7 @@ import hashlib
 import sys
 import subprocess
 import stat
+import shutil
 from config import config
 from Path import Path
 
@@ -18,6 +19,12 @@ def download_and_check (url, md5_hash):
   if (os.path.exists (filename_full)):
     if (file_md5_hash (filename_full) == md5_hash):
       return
+  download_cache_path = os.path.join (config.DOWNLOAD_CACHE.native(), filename)
+  if (os.path.exists (download_cache_path)):
+    shutil.copy2 (download_cache_path, filename_full)
+    if (file_md5_hash (filename_full) == md5_hash):
+      print "using cached copy for " + filename_full
+      return
   print "downloading " + filename_full + " from " + url
   sys.stdout.flush()
   utils.getFile (url, download_dir)
index cec7086..cbac7ee 100644 (file)
@@ -4,6 +4,7 @@ class Config:
   PREFIX = Path ("/c/beast")
   SRC_DIR = Path ("/c/beastbuild/src")
   DOWNLOAD = Path ('/c/beastbuild/download')
+  DOWNLOAD_CACHE = Path ("/z/files/beastbuild")  # location of already downloaded archives
   BEASTBUILD = Path ("/c/beastbuild-git")
   TMP = Path ("/c/beastbuild/tmp")
   IMAGES = Path ("/c/beastbuild/images")