]> git.donarmstrong.com Git - neurodebian.git/commitdiff
Allow aliasing of blend taskfile entry to arbitrary package names.
authorMichael Hanke <michael.hanke@gmail.com>
Thu, 24 Jun 2010 13:43:57 +0000 (09:43 -0400)
committerMichael Hanke <michael.hanke@gmail.com>
Thu, 24 Jun 2010 13:43:57 +0000 (09:43 -0400)
neurodebian.cfg
neurodebian/dde.py

index a05bed4a6e4b634a49d26bb06b1827d2ee77adad..d52c159eda22120f1933e88a91714552b897b702 100644 (file)
@@ -11,9 +11,8 @@ select taskfiles =
 
 # Additional selection filter (similar to 'select taskfiles'), only listing
 # package names
-select names = fsl-doc fslview-doc fsl-atlases fsl-possum-data fsl-first-data
- fsl-feeds libnifti1 odin mitools afni-atlases python-pyssdh python-networkx
- r-cran-glmnet python-rpy2 python-mvpa-snapshot python-nibabel-snapshot
+select names = libnifti1 odin mitools afni-atlases python-pyssdh python-networkx
+ r-cran-glmnet python-rpy2 python-nibabel-snapshot
  python-scikits-learn python-mdp
 
 # Information about prospective packages to be imported from taskfiles
@@ -22,6 +21,15 @@ prospective =
  svn://svn.debian.org/blends/projects/med/trunk/debian-med/tasks/imaging
  svn://svn.debian.org/blends/projects/med/trunk/debian-med/tasks/imaging-dev
 
+[blend package aliases]
+# alias a package name from a blend taskfile to an arbitray number of additional
+# package names -- if the original name should appear in the package list it has
+# to be added as an alias as well
+mni-icbm152-nlin-2009 = mni-icbm152-nlin-2009a mni-icbm152-nlin-2009b mni-icbm152-nlin-2009c
+fsl = fsl fsl-doc fsl-atlases fsl-possum-data fsl-first-data fsl-feeds
+fslview = fslview fslview-doc
+python-mvpa = python-mvpa python-mvpa-snapshot
+
 [mirrors]
 us = http://neuro.debian.net/debian
 de = http://apsy.gse.uni-magdeburg.de/debian
index 852a488bd9d1820fa106be17f3010d409ae0c961..acc3fc042ef8b273d8c5db63ed30d5d067c6d3fd 100755 (executable)
@@ -16,6 +16,7 @@ from ConfigParser import SafeConfigParser
 from optparse import OptionParser, Option, OptionGroup, OptionConflictError
 import sys
 import os
+import copy
 import shutil
 import urllib2
 import urllib
@@ -154,7 +155,7 @@ def add_pkgfromtaskfile(db, urls):
 def get_emptydbentry():
     return {'main': {}}
 
-def import_blendstask(db, url):
+def import_blendstask(cfg, db, url):
     cache = AptListsCache()
     fh = cache.get(url)
     task_name = None
@@ -252,6 +253,16 @@ def import_blendstask(db, url):
                 # just add this tasks name and id
                 db[p]['blends']['tasks'].append(task)
 
+            # handle pkg name aliases
+            if p in cfg.options('blend package aliases'):
+                src_entry = db[p].copy()
+                # remove original entry
+                del db[p]
+                # copy the entry into all aliases
+                for alias in cfg.get('blend package aliases', p).split():
+                    print "Aliasing %s to %s" % (p, alias)
+                    db[alias] = copy.deepcopy(src_entry)
+
     return db
 
 
@@ -697,7 +708,7 @@ def main():
         # get info from task files
         if cfg.has_option('packages', 'prospective'):
             for url in cfg.get('packages', 'prospective').split():
-                db = import_blendstask(db, url)
+                db = import_blendstask(cfg, db, url)
 
         # parse NeuroDebian repository
         if cfg.has_option('neurodebian', 'releases'):