diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2016-04-15 14:20:43 +0300 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2016-04-18 14:37:16 +0300 |
commit | b0490cd0a333ff3a65ebef0b61a1a12bc4235cbf (patch) | |
tree | bd15f7ecf7b1d65e848562ae50128e6928363900 | |
parent | 42eb702159aa211dfcc5d5f9610836d026f1e782 (diff) |
Add an option to mksetupini to disable checking that required packages exist
Add an --okmissing option to mksetupini, modelled after genini
Add the okmissing token require-package, which disables checking that
required packages exist
This makes mksetupini a little more generally useful
-rwxr-xr-x | mksetupini | 2 | ||||
-rwxr-xr-x | package.py | 23 |
2 files changed, 15 insertions, 10 deletions
@@ -25,6 +25,7 @@ # mksetupini # # Make a setup.ini file from a collection of tarfiles and setup.hints +# (this is intended to be a replacement for genini) # import argparse @@ -98,6 +99,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description='Make setup.ini') parser.add_argument('--arch', action='store', required=True, choices=common_constants.ARCHES) parser.add_argument('--inifile', '-u', action='store', help='output filename', required=True) + parser.add_argument('--okmissing', action='append', help='missing things are ok', choices=['required-package']) parser.add_argument('--pkglist', action='store', nargs='?', metavar='FILE', help="package maintainer list (default: " + pkglist_default + ")", const=pkglist_default) parser.add_argument('--release', action='store', help='value for setup-release key (default: cygwin)', default='cygwin') parser.add_argument('--releasearea', action='store', metavar='DIR', help="release directory (default: " + relarea_default + ")", default=relarea_default, dest='rel_area') @@ -274,17 +274,20 @@ def validate_packages(args, packages): error = False for p in sorted(packages.keys()): - # all packages listed in requires must exist - if 'requires' in packages[p].hints: - for r in packages[p].hints['requires'].split(): - if r not in packages: - logging.error("package '%s' requires nonexistent package '%s'" % (p, r)) - error = True + logging.debug("validating package '%s'" % (p)) - # a package is should not appear in it's own requires - if r == p: - lvl = logging.WARNING if p not in past_mistakes.self_requires else logging.INFO - logging.log(lvl, "package '%s' requires itself" % (p)) + if 'required-package' not in getattr(args, 'okmissing', []): + # all packages listed in requires must exist + if 'requires' in packages[p].hints: + for r in packages[p].hints['requires'].split(): + if r not in packages: + logging.error("package '%s' requires nonexistent package '%s'" % (p, r)) + error = True + + # a package is should not appear in it's own requires + if r == p: + lvl = logging.WARNING if p not in past_mistakes.self_requires else logging.INFO + logging.log(lvl, "package '%s' requires itself" % (p)) # if external-source is used, the package must exist if 'external-source' in packages[p].hints: |