9 Commits
v0.20 ... v0.22

Author SHA1 Message Date
kewl fft
3901eb7368 aur_only param added 2018-07-25 21:19:02 +01:00
kewl
9772b680dd Merge pull request #15 from visibilityspots/master
Aurman feature: fetch new pgp keys without interaction
2018-07-24 14:21:01 +01:00
Jan Collijs
349e237307 Aurman feature: fetch new pgp keys without interaction 2018-07-24 10:40:52 +02:00
kewl
3ebf634913 Merge pull request #14 from gliech/master
Skip the archlinux.org news in aurman
2018-07-17 11:11:37 +01:00
Der Gliech
5b4dd96294 added '--skip_news' to the options for aurman 2018-07-17 10:23:03 +02:00
kewl fft
2add192d89 upgrade yay in 2nd position 2018-07-06 22:15:26 +01:00
kewl fft
2f67cbcc9f yay needed option added 2018-07-06 22:12:28 +01:00
kewl fft
2df576955a Merge branch 'master' of github.com:kewlfft/ansible-aur 2018-06-16 09:30:49 +01:00
kewl fft
13a45e35a8 readme 2018-06-16 09:30:17 +01:00
2 changed files with 22 additions and 12 deletions

View File

@@ -3,10 +3,10 @@ Ansible module to use some Arch User Repository (AUR) helpers as well as makepkg
The following helpers are supported and automatically selected in the order they are listed: The following helpers are supported and automatically selected in the order they are listed:
- [aurman](https://github.com/polygamma/aurman) - [aurman](https://github.com/polygamma/aurman)
- [yay](https://github.com/Jguer/yay)
- [pacaur](https://github.com/rmarquis/pacaur) - [pacaur](https://github.com/rmarquis/pacaur)
- [trizen](https://github.com/trizen/trizen) - [trizen](https://github.com/trizen/trizen)
- [pikaur](https://github.com/actionless/pikaur) - [pikaur](https://github.com/actionless/pikaur)
- [yay](https://github.com/Jguer/yay)
makepkg will be used if no helper was found or if it's specified explicitly. makepkg will be used if no helper was found or if it's specified explicitly.
- [makepkg](https://wiki.archlinux.org/index.php/makepkg) - [makepkg](https://wiki.archlinux.org/index.php/makepkg)
@@ -16,9 +16,10 @@ makepkg will be used if no helper was found or if it's specified explicitly.
|--- |--- |--- |--- |---| |--- |--- |--- |--- |---|
|name |no | | |Name or list of names of the package(s) to install or upgrade.| |name |no | | |Name or list of names of the package(s) to install or upgrade.|
|upgrade |no |no |yes, no |Whether or not to upgrade whole system.| |upgrade |no |no |yes, no |Whether or not to upgrade whole system.|
|use |no |auto |auto, aurman, pacaur, trizen, pikaur, yay, makepkg |The helper to use, 'auto' uses the first known helper found and makepkg as a fallback.| |use |no |auto |auto, aurman, yay, pacaur, trizen, pikaur, makepkg |The helper to use, 'auto' uses the first known helper found and makepkg as a fallback.|
|skip_installed |no |no |yes, no |Skip operations if the package is present.| |skip_installed |no |no |yes, no |Skip operations if the package is present.|
|skip_pgp_check |no |no |yes, no |Skip verification of PGP signatures. This is useful when installing packages on a host without GnuPG (properly) configured. Only valid with makepkg.| |skip_pgp_check |no |no |yes, no |Skip verification of PGP signatures. This is useful when installing packages on a host without GnuPG (properly) configured. Only valid with makepkg.|
|aur_only |no |no |yes, no |Limit operation to the AUR. Compatible with yay, aurman, pacaur and trizen.|
### Note ### Note
* Either *name* or *upgrade* is required, both cannot be used together. * Either *name* or *upgrade* is required, both cannot be used together.
@@ -26,7 +27,7 @@ makepkg will be used if no helper was found or if it's specified explicitly.
* In the *use*=*auto* mode, makepkg is used as a fallback if no known helper is found. * In the *use*=*auto* mode, makepkg is used as a fallback if no known helper is found.
## Installing ## Installing
### aur-ansible-git AUR package ### AUR package
The [aur-ansible-git](https://aur.archlinux.org/packages/ansible-aur-git) package is available in the AUR. The [aur-ansible-git](https://aur.archlinux.org/packages/ansible-aur-git) package is available in the AUR.
Note the module is installed in `/usr/share/ansible/plugins/modules` which is one of the default module library paths. Note the module is installed in `/usr/share/ansible/plugins/modules` which is one of the default module library paths.

27
aur.py
View File

@@ -49,6 +49,10 @@ options:
Only valid with makepkg. Only valid with makepkg.
type: bool type: bool
default: no default: no
aur_only:
description:
- Limit operation to the AUR. Compatible with yay, aurman, pacaur and trizen.
notes: notes:
- When used with a `loop:` each package will be processed individually, - When used with a `loop:` each package will be processed individually,
it is much more efficient to pass the list directly to the `name` option. it is much more efficient to pass the list directly to the `name` option.
@@ -72,14 +76,15 @@ EXAMPLES = '''
def_lang = ['env', 'LC_ALL=C'] def_lang = ['env', 'LC_ALL=C']
use_cmd = { use_cmd = {
'aurman': ['aurman', '-S', '--noconfirm', '--noedit', '--needed'], 'aurman': ['aurman', '-S', '--noconfirm', '--noedit', '--needed', '--skip_news', '--pgp_fetch'],
'yay': ['yay', '-S', '--noconfirm', '--needed'],
'pacaur': ['pacaur', '-S', '--noconfirm', '--noedit', '--needed'], 'pacaur': ['pacaur', '-S', '--noconfirm', '--noedit', '--needed'],
'trizen': ['trizen', '-S', '--noconfirm', '--noedit', '--needed'], 'trizen': ['trizen', '-S', '--noconfirm', '--noedit', '--needed'],
'pikaur': ['pikaur', '-S', '--noconfirm', '--noedit', '--needed'], 'pikaur': ['pikaur', '-S', '--noconfirm', '--noedit', '--needed'],
'yay': ['yay', '-S', '--noconfirm'],
'makepkg': ['makepkg', '--syncdeps', '--install', '--noconfirm', '--needed'] 'makepkg': ['makepkg', '--syncdeps', '--install', '--noconfirm', '--needed']
} }
# optional: aurman, pacaur, trizen have a --aur option, do things only for aur
has_aur_option = ['yay', 'aurman', 'pacaur', 'trizen']
def package_installed(module, package): def package_installed(module, package):
@@ -143,13 +148,13 @@ def install_with_makepkg(module, package):
return (rc, out, err) return (rc, out, err)
def upgrade(module, use): def upgrade(module, use, aur_only):
""" """
Upgrade the whole system Upgrade the whole system
""" """
assert use in use_cmd assert use in use_cmd
rc, out, err = module.run_command(def_lang + use_cmd[use] + ['-u'], check_rc=True) rc, out, err = module.run_command(def_lang + use_cmd[use] + ['--aur' if (aur_only and use in has_aur_option) else None] + ['-u'], check_rc=True)
module.exit_json( module.exit_json(
changed=not (out == '' or 'nothing to do' in out or 'No AUR updates found' in out), changed=not (out == '' or 'nothing to do' in out or 'No AUR updates found' in out),
@@ -158,7 +163,7 @@ def upgrade(module, use):
) )
def install_packages(module, packages, use, skip_installed): def install_packages(module, packages, use, skip_installed, aur_only):
""" """
Install the specified packages Install the specified packages
""" """
@@ -174,7 +179,7 @@ def install_packages(module, packages, use, skip_installed):
if use == 'makepkg': if use == 'makepkg':
rc, out, err = install_with_makepkg(module, package) rc, out, err = install_with_makepkg(module, package)
else: else:
rc, out, err = module.run_command(def_lang + use_cmd[use] + [package], check_rc=True) rc, out, err = module.run_command(def_lang + use_cmd[use] + ['--aur' if (aur_only and use in has_aur_option) else None] + [package], check_rc=True)
changed_iter = changed_iter or not (out == '' or '-- skipping' in out or 'nothing to do' in out) changed_iter = changed_iter or not (out == '' or '-- skipping' in out or 'nothing to do' in out)
@@ -213,6 +218,10 @@ def main():
'default': False, 'default': False,
'type': 'bool', 'type': 'bool',
}, },
'aur_only': {
'default': False,
'type': 'bool',
},
}, },
required_one_of=[['name', 'upgrade']], required_one_of=[['name', 'upgrade']],
supports_check_mode=True supports_check_mode=True
@@ -237,9 +246,9 @@ def main():
module.fail_json(msg="Upgrade cannot be used with this option.") module.fail_json(msg="Upgrade cannot be used with this option.")
else: else:
if params['upgrade']: if params['upgrade']:
upgrade(module, use) upgrade(module, use, params['aur_only'])
else: else:
install_packages(module, params['name'], use, params['skip_installed']) install_packages(module, params['name'], use, params['skip_installed'], params['aur_only'])
if __name__ == '__main__': if __name__ == '__main__':