aboutsummaryrefslogtreecommitdiffstats
path: root/MgaRepo/binrepo.py
diff options
context:
space:
mode:
Diffstat (limited to 'MgaRepo/binrepo.py')
-rw-r--r--MgaRepo/binrepo.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/MgaRepo/binrepo.py b/MgaRepo/binrepo.py
index 2a6f437..8480fd3 100644
--- a/MgaRepo/binrepo.py
+++ b/MgaRepo/binrepo.py
@@ -127,6 +127,34 @@ def find_binaries(paths):
new.append(path)
return new
+def download_binary(topdir, sha1, filename):
+ fmt = config.get("global", "download-command",
+ "wget -c -O '$dest' $url")
+ url = config.get("global", "binrepo",
+ "http://binrepo.mageia.org/")
+ url = mirror.normalize_path(url + "/" + sha1)
+ dest = os.path.join(topdir, 'SOURCES', filename)
+ if os.path.exists(dest):
+ return 1
+ context = {"dest": dest, "url": url}
+ try:
+ cmd = string.Template(fmt).substitute(context)
+ except KeyError, e:
+ raise Error, "invalid variable %r in download-command "\
+ "configuration option" % e
+ try:
+ status, output = execcmd(cmd, show=True)
+ except Error, e:
+ raise Error, "Could not download file %s\n" % url
+
+def download_binaries(topdir):
+ spath = sources_path(topdir)
+ if not os.path.exists(spath):
+ raise Error, "'%s' was not found" % spath
+ entries = parse_sources(spath)
+ for name, sha1 in entries.iteritems():
+ download_binary(topdir, sha1, name)
+
def make_symlinks(source, dest):
todo = []
tomove = []