--usepkgonly does not imply --getbinpkg

Add usepkg option to allow conditional building from source if binary
packages are not found

5a6de937cb (commitcomment-11755140)
https://wiki.gentoo.org/wiki/Binary_package_guide#Using_binary_packages
This commit is contained in:
Andrew Udvare 2015-06-18 15:59:46 -07:00
parent 5a6de937cb
commit 5e5eec1806

View file

@ -267,14 +267,14 @@ def emerge_packages(module, packages):
'verbose': '--verbose', 'verbose': '--verbose',
'getbinpkg': '--getbinpkg', 'getbinpkg': '--getbinpkg',
'usepkgonly': '--usepkgonly', 'usepkgonly': '--usepkgonly',
'usepkg': '--usepkg',
} }
for flag, arg in emerge_flags.iteritems(): for flag, arg in emerge_flags.iteritems():
if p[flag]: if p[flag]:
args.append(arg) args.append(arg)
# usepkgonly implies getbinpkg if 'usepkg' in p and 'usepkgonly' in p:
if p['usepkgonly'] and not p['getbinpkg']: module.fail_json(msg='Use only one of usepkg, usepkgonly')
args.append('--getbinpkg')
cmd, (rc, out, err) = run_emerge(module, packages, *args) cmd, (rc, out, err) = run_emerge(module, packages, *args)
if rc != 0: if rc != 0:
@ -406,6 +406,7 @@ def main():
sync=dict(default=None, choices=['yes', 'web']), sync=dict(default=None, choices=['yes', 'web']),
getbinpkg=dict(default=None, choices=['yes']), getbinpkg=dict(default=None, choices=['yes']),
usepkgonly=dict(default=None, choices=['yes']), usepkgonly=dict(default=None, choices=['yes']),
usepkg=dict(default=None, choices=['yes']),
), ),
required_one_of=[['package', 'sync', 'depclean']], required_one_of=[['package', 'sync', 'depclean']],
mutually_exclusive=[['nodeps', 'onlydeps'], ['quiet', 'verbose']], mutually_exclusive=[['nodeps', 'onlydeps'], ['quiet', 'verbose']],