packaging/os/portage: Improve check mode handling
When running in check mode, the *portage* module always reports that no changes were made, even if the requested packages do not exist on the system. This is because it was erroneously expecting `emerge --pretend` to produce the same output as `emerge` by itself would, and attempts to parse it. This is not correct, for several reasons. Most specifically, the string for which it is searching does not exist in the pretend output. Additionally, `emerge --pretend` always prints the requested packages, whether they are already installed or not; in the former case, it shows them as reinstalls. This commit adjusts the behavior to rely on `equery` alone when running in check mode. If `equery` reports at least one package is not installed, then nothing else is done: the system will definitely be changed. Signed-off-by: Dustin C. Hatch <dustin@hatch.name>
This commit is contained in:
parent
bd177bcb62
commit
1b0676b559
1 changed files with 2 additions and 0 deletions
|
@ -254,6 +254,8 @@ def emerge_packages(module, packages):
|
|||
break
|
||||
else:
|
||||
module.exit_json(changed=False, msg='Packages already present.')
|
||||
if module.check_mode:
|
||||
module.exit_json(changed=True, msg='Packages would be installed.')
|
||||
|
||||
args = []
|
||||
emerge_flags = {
|
||||
|
|
Loading…
Reference in a new issue