[SCM] hydrogen-drumkits/master: fixed get-orig-sources script

umlaeute at users.alioth.debian.org umlaeute at users.alioth.debian.org
Fri Jul 21 19:49:10 UTC 2017


The following commit has been merged in the master branch:
commit 7a2b04954d55f5747f8b4c48ca9bc449ed5bf2f8
Author: IOhannes m zmölnig <zmoelnig at umlautQ.umlaeute.mur.at>
Date:   Wed Jul 19 15:56:16 2017 +0200

    fixed get-orig-sources script

diff --git a/debian/get-orig-source.py b/debian/get-orig-source.py
index 487e2cb..cb79b80 100755
--- a/debian/get-orig-source.py
+++ b/debian/get-orig-source.py
@@ -82,7 +82,13 @@ OUTFILE=None
 
 ## apply replacements on URLs
 URLFIX=[]
-URLFIX+=[("http://switch.dl.sourceforge.net/sourceforge/", "http://downloads.sourceforge.net/project/")]
+URLFIX+=[
+    ("http://www.hydrogen-music.org/", "http://hydrogen-music.org/"),
+    ("://sourceforge.net/projects/hydrogen/files/", "://prdownloads.sf.net/hydrogen/"),
+    ("://sourceforge.net/projects/sourceforge/", "://prdownloads.sf.net/"),
+    ("://sourceforge.net/projects/", "://prdownloads.sf.net/"),
+    ("://switch.dl.sourceforge.net/sourceforge/", "://prdownloads.sf.net/"),
+    ]
 
 ### come compat foo
 
@@ -227,6 +233,14 @@ def tarup(tarname, path, strippath):
         tar.add(path, filter = filter)
     return tarfilename
 
+def normalizePkgs(pkgs, fixurls=True):
+    data=sorted(pkgs)
+    if fixurls:
+        for d in data:
+            d['url']=fixURL(d['url'], URLFIX)
+    data=sorted(data, key=lambda s: s["url"].lower())
+    return data
+
 
 ## core functions
 
@@ -244,14 +258,19 @@ def write_dep5(path, pkgs):
                 f.write("License: %s\n" % p.get('licensed'))
 
 
-def write_DrumkitInfo(path, dki, name=None):
-    if not name:
+def write_DrumkitInfo(path, dki, name=None, fixurls=True):
+    if name:
+        normalizePkgs(dki, fixurls)
+    else:
         name=dki['name']
-    with open(os.path.join(path, name+".json"), "w") as f:
-        json.dump(dki, f, indent=2, separators=(',', ': '))
+    for p in path:
+        filename = os.path.join(p, name+".json")
+        print("writing drumkit info to: %s" % (filename,))
+        with open(filename, "w") as f:
+            json.dump(dki, f, indent=2, separators=(',', ': '), sort_keys=True)
 
 
-def get_availableDrumkitsInfo(url):
+def get_availableDrumkitsInfo(url, fixurls=True):
     """returns a list of dictionaries, each describing a drumkit (as obtained from 'url')"""
     def xmlobjs_to_dictlist(objs):
         objs_list = []
@@ -268,9 +287,10 @@ def get_availableDrumkitsInfo(url):
 
     filename = urllib.urlretrieve(url)[0]
     objs = xml.etree.ElementTree.parse(filename).findall('drumkit')
-    return xmlobjs_to_dictlist(objs)
+    o = xmlobjs_to_dictlist(objs)
+    return normalizePkgs(o, fixurls)
 
-def get_packagedDrumkitsInfo(paths, jname='drumkits.json'):
+def get_packagedDrumkitsInfo(paths, jname='drumkits.json', fixurls=True):
     """returns a list of dictionaries, each describing a drumkit (as info found at 'path')"""
     objs_list = []
     try:
@@ -291,6 +311,7 @@ def get_packagedDrumkitsInfo(paths, jname='drumkits.json'):
             objs_list.append(j)
         if type(j) == list:
             objs_list+=j
+    objs_list = normalizePkgs(objs_list, fixurls)
     return objs_list
 
 def compareDrumkitInfo(dk1, dk2):
@@ -346,10 +367,10 @@ def print_foo(objs):
             print("%s (%s)\n" % (o['name'], o['url']))
 
 def pkg_drumkits(conf):
+    fixurls = (not conf.no_url_fixes)
     addall=conf.add_all_regardless_of_license
     # list of already packaged drumkits
-    packd=get_packagedDrumkitsInfo(conf.pkgdir)
-    # list of available (online) drumkits
+    packd=get_packagedDrumkitsInfo(conf.pkgdir, fixurls=fixurls)    # list of available (online) drumkits
     avail=[x for x in get_availableDrumkitsInfo(conf.uri)]
     interactive=not conf.non_interactive
 
@@ -415,15 +436,15 @@ def pkg_drumkits(conf):
         pkgs = avail
     else:
         pkgs = [x for x in avail if x.get('distribute')]
-    write_DrumkitInfo(conf.workdir, avail, 'drumkits')
+    write_DrumkitInfo([conf.workdir] + conf.pkgdir, avail, 'drumkits', fixurls)
     download=True
     if interactive:
         try:
-            raw_input("Press [return] to proceed with downloading %d drumkits; ^D to skip\n")
+            raw_input("Press [return] to proceed with downloading %d/%d drumkits; ^D to skip\n" % (len(pkgs), len(avail)))
         except EOFError:
             download=False
     if download:
-        if conf.no_url_fixes:
+        if not fixurls:
             urlfix=None
             print("NOT applying the following URL-fixes:")
             for (a,b) in URLFIX:

-- 
hydrogen-drumkits packaging



More information about the pkg-multimedia-commits mailing list