From: Michael Hanke Date: Thu, 24 Jun 2010 13:43:57 +0000 (-0400) Subject: Allow aliasing of blend taskfile entry to arbitrary package names. X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f5145b828e9a7553093573d052eb1fbfef989b16;hp=253ea0044628dcf9c6fbc4cd65c208f0413b34d4;p=neurodebian.git Allow aliasing of blend taskfile entry to arbitrary package names. --- diff --git a/neurodebian.cfg b/neurodebian.cfg index a05bed4..d52c159 100644 --- a/neurodebian.cfg +++ b/neurodebian.cfg @@ -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 diff --git a/neurodebian/dde.py b/neurodebian/dde.py index 852a488..acc3fc0 100755 --- a/neurodebian/dde.py +++ b/neurodebian/dde.py @@ -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'):