9 Commits
v0.24 ... v0.25

Author SHA1 Message Date
kewl fft
026786beb0 deprioritize aurman - discontinued 2020-04-12 20:00:50 -04:00
kewl fft
c24454a159 readme minor improvements 2020-04-12 19:45:52 -04:00
kewl fft
63e60fc256 add comments for ignore_arch 2020-04-12 19:40:51 -04:00
kewl
e643e8f450 Merge pull request #30 from neilmunday/master
Added ignore_arch option for makepkg
2020-04-12 19:24:49 -04:00
neilmunday
bd374b15d9 Added ignore_arch option for makepkg 2020-04-13 00:05:35 +01:00
kewl fft
d6d25c6738 readme update 2020-03-03 07:26:29 -05:00
kewl
672b060fe9 Merge pull request #29 from pallxk/embed-module-in-role
Embed module in role
2020-03-02 20:54:00 -05:00
pallxk
c26e14c8ce Update README for installation via Ansible Galaxy 2020-03-02 13:43:56 +08:00
pallxk
74b538db28 Embed module in role 2020-02-28 11:23:41 +08:00
3 changed files with 71 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, if present, in the order listed below: The following helpers are supported and automatically selected, if present, in the order listed below:
- [yay](https://github.com/Jguer/yay) - [yay](https://github.com/Jguer/yay)
- [aurman](https://github.com/polygamma/aurman) - [pacaur](https://github.com/E5ten/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)
- [aurman](https://github.com/polygamma/aurman) (discontinued)
*makepkg* will be used if no helper was found or if it is explicitly specified: *makepkg* will be used if no helper was found or if it is explicitly specified:
- [makepkg](https://wiki.archlinux.org/index.php/makepkg) - [makepkg](https://wiki.archlinux.org/index.php/makepkg)
@@ -16,10 +16,11 @@ The following helpers are supported and automatically selected, if present, in t
|--- |--- |--- |--- |---| |--- |--- |--- |--- |---|
|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, yay, aurman, pacaur, trizen, pikaur, makepkg |The helper to use, 'auto' uses the first known helper found and makepkg as a fallback.| |use |no |auto |auto, yay, pacaur, trizen, pikaur, aurman, 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.| |aur_only |no |no |yes, no |Limit operation to the AUR. Compatible with yay, pacaur, aurman and trizen.|
|aur_only |no |no |yes, no |Limit operation to the AUR. Compatible with yay, aurman, pacaur and trizen.| |skip_pgp_check |no |no |yes, no |Only valid with makepkg. Skip PGP signatures verification of source file, useful when installing packages without GnuPG properly configured.|
|ignore_arch |no |no |yes, no |Only valid with makepkg. Ignore a missing or incomplete arch field, useful when the PKGBUILD does not have the arch=('yourarch') field.|
### Note ### Note
* Either *name* or *upgrade* is required, both cannot be used together. * Either *name* or *upgrade* is required, both cannot be used together.
@@ -37,9 +38,37 @@ Just clone the *ansible-aur* repository into your user custom-module directory:
git clone https://github.com/kewlfft/ansible-aur.git ~/.ansible/plugins/modules/aur git clone https://github.com/kewlfft/ansible-aur.git ~/.ansible/plugins/modules/aur
``` ```
### Ansible Galaxy
*ansible-aur* is available in Galaxy which is a hub for sharing Ansible content. To download it, use:
```
ansible-galaxy install kewlfft.aur
```
Note that if this module is installed from Ansible Galaxy, you will need to list it explicitly in your playbook:
```
# playbook.yml
- hosts: localhost
roles:
- kewlfft.aur
tasks:
- aur: name=package_name
```
or in your role:
```
# meta/main.yml
dependencies:
- kewlfft.aur
```
```
# tasks/main.yml
- aur: name=package_name
```
## Usage ## Usage
### Notes ### Notes
* This module aims to cover the AUR; for package removal or system upgrade with the repositories, it is recommended to use the official *pacman* module. * The scope of this module is installation and update from the AUR; for package removal or system upgrade from the official repositories, it is recommended to use the official *pacman* module.
* The *--needed* parameter of the helper is systematically used, it means if a package is up to date, it is not built and reinstalled. * The *--needed* parameter of the helper is systematically used, it means if a package is up to date, it is not built and reinstalled.
### Examples ### Examples

View File

@@ -35,7 +35,7 @@ options:
description: description:
- The helper to use, 'auto' uses the first known helper found and makepkg as a fallback. - The helper to use, 'auto' uses the first known helper found and makepkg as a fallback.
default: auto default: auto
choices: [ auto, yay, aurman, pacaur, trizen, pikaur, makepkg ] choices: [ auto, yay, pacaur, trizen, pikaur, aurman, makepkg ]
skip_installed: skip_installed:
description: description:
@@ -45,9 +45,16 @@ options:
skip_pgp_check: skip_pgp_check:
description: description:
- Skip verification of PGP signatures. - Only valid with makepkg.
This is useful when installing packages on a host without GnuPG (properly) configured. Skip PGP signatures verification of source file.
Only valid with makepkg. This is useful when installing packages without GnuPG (properly) configured.
type: bool
default: no
ignore_arch:
description:
- Only valid with makepkg.
Ignore a missing or incomplete arch field, useful when the PKGBUILD does not have the arch=('yourarch') field.
type: bool type: bool
default: no default: no
@@ -78,14 +85,14 @@ def_lang = ['env', 'LC_ALL=C']
use_cmd = { use_cmd = {
'yay': ['yay', '-S', '--noconfirm', '--needed', '--cleanafter'], 'yay': ['yay', '-S', '--noconfirm', '--needed', '--cleanafter'],
'aurman': ['aurman', '-S', '--noconfirm', '--noedit', '--needed', '--skip_news', '--pgp_fetch', '--skip_new_locations'],
'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'],
'aurman': ['aurman', '-S', '--noconfirm', '--noedit', '--needed', '--skip_news', '--pgp_fetch', '--skip_new_locations'],
'makepkg': ['makepkg', '--syncdeps', '--install', '--noconfirm', '--needed'] 'makepkg': ['makepkg', '--syncdeps', '--install', '--noconfirm', '--needed']
} }
has_aur_option = ['yay', 'aurman', 'pacaur', 'trizen'] has_aur_option = ['yay', 'pacaur', 'trizen', 'aurman']
def package_installed(module, package): def package_installed(module, package):
@@ -145,6 +152,8 @@ def install_with_makepkg(module, package):
os.chdir(format(result['Name'])) os.chdir(format(result['Name']))
if module.params['skip_pgp_check']: if module.params['skip_pgp_check']:
use_cmd['makepkg'].append('--skippgpcheck') use_cmd['makepkg'].append('--skippgpcheck')
if module.params['ignore_arch']:
use_cmd['makepkg'].append('--ignorearch')
rc, out, err = module.run_command(use_cmd['makepkg'], check_rc=True) rc, out, err = module.run_command(use_cmd['makepkg'], check_rc=True)
os.chdir(current_path) os.chdir(current_path)
return (rc, out, err) return (rc, out, err)
@@ -201,6 +210,10 @@ def main():
'name': { 'name': {
'type': 'list', 'type': 'list',
}, },
'ignore_arch': {
'default': False,
'type': 'bool',
},
'upgrade': { 'upgrade': {
'default': False, 'default': False,
'type': 'bool', 'type': 'bool',

17
meta/main.yml Normal file
View File

@@ -0,0 +1,17 @@
galaxy_info:
author: kewlfft
role_name: aur
description: Ansible module to use some Arch User Repository (AUR) helpers as well as makepkg.
license: GPL-3.0-or-later
min_ansible_version: 2.0
# https://galaxy.ansible.com/api/v1/platforms/
platforms:
- name: ArchLinux
versions:
- any
galaxy_tags:
- aur
dependencies: []