diff --git a/scripts/projects.py b/scripts/projects.py index 1c1cf61e..0d07bdd1 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -332,6 +332,8 @@ class Projects(object): default=False, help='Find dependencies recursively') parser.add_argument('--dont-expand-version-macros', action='store_true', default=False, help='Don\'t expand VERSION and REVISION macros') + parser.add_argument('--ignore', nargs='?', default='', help='Packages that ' + 'should be ignored together with their dependencies') args = parser.parse_args(args_) version_pattern=re.compile("[0-9-.]*") if args.subsections is None: @@ -340,6 +342,8 @@ class Projects(object): else: subsecs = args.subsections.split(',') self.debug('flavour = ', args.flavour, ', subsecs = ', ' '.join(subsecs)) + ignore = args.ignore.split(',') + self.debug("ignore = ", ignore) r = [] flavours = args.flavour.split(',') @@ -350,7 +354,7 @@ class Projects(object): modules = args.module.copy() while len(modules): m = modules.pop(0) - if m in visited: + if m in visited or m in ignore: continue visited.add(m) value = self.get_value(m, section, flavour) @@ -363,6 +367,8 @@ class Projects(object): dep = dep[:1] dep = list(map(str.strip, dep)) dep_name = re.sub('-dev$|-devel$|-run$', '', dep[0]) + if dep_name in ignore or dep[0] in ignore: + continue if args.no_subpackages: dep[0] = dep_name for i, item in enumerate(dep): @@ -389,6 +395,7 @@ class Projects(object): raise Exception("Unknown version specifier in " + spec) cleaned_dep = ' '.join(dep) if not cleaned_dep in r: + self.debug("appending", cleaned_dep) r.append(cleaned_dep) return args.delimiter.join(r)