Speed up brew module package install & upgrade (#9022)

* Verify installation via `brew install` return code in`_install_current_package` (Skip one brew info)

* Avoid computing `current_package_is_installed` twice in a row

* Verify installation via `brew install` return code in  `_upgrade_current_package(Skip 2 brew commands)

* Add changelog fragment

* Update changelogs/fragments/9022-improve-homebrew-perf.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
pull/9040/head
Thibaut Decombe 2024-10-19 12:50:46 +02:00 committed by GitHub
parent 1180843e35
commit 86166ccade
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 4 deletions

View File

@ -0,0 +1,2 @@
minor_changes:
- homebrew - speed up brew install and upgrade (https://github.com/ansible-collections/community.general/pull/9022).

View File

@ -572,7 +572,7 @@ class Homebrew(object):
cmd = [opt for opt in opts if opt]
rc, out, err = self.module.run_command(cmd)
if self._current_package_is_installed():
if rc == 0:
self.changed_count += 1
self.changed_pkgs.append(self.current_package)
self.changed = True
@ -600,10 +600,11 @@ class Homebrew(object):
self.message = 'Invalid package: {0}.'.format(self.current_package)
raise HomebrewException(self.message)
if not self._current_package_is_installed():
current_package_is_installed = self._current_package_is_installed()
if not current_package_is_installed:
command = 'install'
if self._current_package_is_installed() and not self._current_package_is_outdated():
if current_package_is_installed and not self._current_package_is_outdated():
self.message = 'Package is already upgraded: {0}'.format(
self.current_package,
)
@ -626,7 +627,7 @@ class Homebrew(object):
cmd = [opt for opt in opts if opt]
rc, out, err = self.module.run_command(cmd)
if self._current_package_is_installed() and not self._current_package_is_outdated():
if rc == 0:
self.changed_count += 1
self.changed_pkgs.append(self.current_package)
self.changed = True