diff --git a/README.md b/README.md index a59bcad..14a7419 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ The following helpers are supported and automatically selected, if present, in t | name | | Name or list of names of the package(s) to install or upgrade. | | state | **present**, latest | Desired state of the package, 'present' skips operations if the package is already installed. | | upgrade | yes, **no** | Whether or not to upgrade whole system. | +| update_cache | yes, **no** | Whether or not to refresh the packages cache | | use | **auto**, yay, paru, pacaur, trizen, pikaur, aurman, makepkg | The tool to use, 'auto' uses the first known helper found and makepkg as a fallback. | | extra_args | **null** | A list of additional arguments to pass directly to the tool. Cannot be used in 'auto' mode. | | aur_only | yes, **no** | Limit helper operation to the AUR. | diff --git a/galaxy.yml b/galaxy.yml index 81c3fd2..105b933 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -8,7 +8,7 @@ namespace: kewlfft name: aur # The version of the collection. Must be compatible with semantic versioning -version: 0.9.1 +version: 0.10.0 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md @@ -66,4 +66,3 @@ issues: https://github.com/kewlfft/ansible-aur/issues # uses 'fnmatch' to match the files or directories. Some directories and files like 'galaxy.yml', '*.pyc', '*.retry', # and '.git' are always filtered build_ignore: [] - diff --git a/plugins/modules/aur.py b/plugins/modules/aur.py index db78736..50284cc 100644 --- a/plugins/modules/aur.py +++ b/plugins/modules/aur.py @@ -39,6 +39,12 @@ options: default: no type: bool + update_cache: + description: + - Whether or not to update_cache the package cache. + default: no + type: bool + use: description: - The tool to use, 'auto' uses the first known helper found and makepkg as a fallback. @@ -160,7 +166,7 @@ def check_packages(module, packages): module.exit_json(changed=status, msg=message, diff=diff) -def build_command_prefix(use, extra_args, skip_pgp_check=False, ignore_arch=False, aur_only=False, local_pkgbuild=None): +def build_command_prefix(use, extra_args, skip_pgp_check=False, ignore_arch=False, aur_only=False, local_pkgbuild=None, update_cache=False): """ Create the prefix of a command that can be used by the install and upgrade functions. """ @@ -176,6 +182,8 @@ def build_command_prefix(use, extra_args, skip_pgp_check=False, ignore_arch=Fals command.append('--aur') if local_pkgbuild and use != 'makepkg': command.append(local_pkgbuild) + if update_cache: + command.append('-y') if extra_args: command += shlex.split(extra_args) return command @@ -232,13 +240,13 @@ def check_upgrade(module, use): ) -def upgrade(module, use, extra_args, aur_only): +def upgrade(module, use, extra_args, aur_only, update_cache): """ Upgrade the whole system """ assert use in use_cmd - command = build_command_prefix(use, extra_args, aur_only=aur_only) + command = build_command_prefix(use, extra_args, aur_only=aur_only, update_cache=update_cache) command.append('-u') rc, out, err = module.run_command(command, check_rc=True) @@ -250,7 +258,7 @@ def upgrade(module, use, extra_args, aur_only): ) -def install_packages(module, packages, use, extra_args, state, skip_pgp_check, ignore_arch, aur_only, local_pkgbuild): +def install_packages(module, packages, use, extra_args, state, skip_pgp_check, ignore_arch, aur_only, local_pkgbuild, update_cache): """ Install the specified packages """ @@ -271,7 +279,7 @@ def install_packages(module, packages, use, extra_args, state, skip_pgp_check, i elif local_pkgbuild: rc, out, err = install_local_package(module, package, use, extra_args, local_pkgbuild) else: - command = build_command_prefix(use, extra_args, aur_only=aur_only) + command = build_command_prefix(use, extra_args, aur_only=aur_only, update_cache=update_cache) command.append(package) rc, out, err = module.run_command(command, check_rc=True) @@ -300,6 +308,10 @@ def make_module(): 'upgrade': { 'type': 'bool', }, + 'update_cache': { + 'default': False, + 'type': 'bool', + }, 'use': { 'default': 'auto', 'choices': ['auto'] + list(use_cmd.keys()), @@ -372,7 +384,7 @@ def apply_module(module, use): if module.check_mode: check_upgrade(module, use) else: - upgrade(module, use, params['extra_args'], params['aur_only']) + upgrade(module, use, params['extra_args'], params['aur_only'], params['update_cache']) else: if module.check_mode: check_packages(module, params['name']) @@ -385,7 +397,8 @@ def apply_module(module, use): params['skip_pgp_check'], params['ignore_arch'], params['aur_only'], - params['local_pkgbuild']) + params['local_pkgbuild'], + params['update_cache']) def main():