19 Commits
v0.10 ... v0.21

Author SHA1 Message Date
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
kewl
38d3785501 Merge pull request #8 from panchoh/simplify-setup-instructions
README.md: Simplify setup instructions
2018-05-24 20:22:39 +01:00
pancho horrillo
50ca93f6bf README.md: Simplify setup instructions
It turns out that the best way to deploy a custom module repo is on
~/.ansible/plugins/modules. For one, there is no need to symlink the <module>.py
file, and also ansible-doc finds it without having to specify the path to the
module via the -M switch.
2018-05-24 19:53:32 +02:00
kewl
9636c0b1ea Merge pull request #7 from panchoh/fix-missing-py-suffix
README.md: Add missing .py suffix in setup instructions and misc fixes
2018-05-24 08:06:01 +01:00
pancho horrillo
3813de8e7e README.md: Favor the https flavor over the ssh one
The ssh descriptor requires the installer to have a github account, whilst the
https works out-of-the-box for everyone.
2018-05-23 23:59:09 +02:00
pancho horrillo
fd510b7c61 README.md: Drop spurious --parents flag to mkdir
Since we are creating a single directory, mkdir --parents is exactly the same as
plain mkdir.
2018-05-23 23:57:52 +02:00
pancho horrillo
98031b260a README.md: Remove trailing whitespace 2018-05-23 23:57:33 +02:00
pancho horrillo
5bd9caa63f README.md: Add missing .py suffix in setup instructions 2018-05-23 22:42:19 +02:00
kewl fft
a9a8d3e706 readme typo fixed 2018-05-23 21:28:55 +01:00
kewl fft
6147c18b30 readm typo fixed 2018-05-23 21:26:36 +01:00
kewl fft
8fae2a78e9 rename module in doc 2018-05-23 21:25:05 +01:00
kewl fft
ec89080a7d readme clarify the script meaning 2018-05-23 21:23:08 +01:00
kewl fft
8194eb2ac0 readme add link to aur package 2018-05-23 21:19:21 +01:00
kewl fft
338fe36f2f ansible-doc help typo fixed 2018-05-23 21:07:53 +01:00
kewl fft
0d51932a6a ansible-doc help added 2018-05-23 21:01:47 +01:00
kewl fft
c804201144 drop yaourt support for security reasons 2018-05-23 19:55:18 +01:00
2 changed files with 76 additions and 20 deletions

View File

@@ -3,23 +3,22 @@ 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:
- [aurman](https://github.com/polygamma/aurman)
- [yay](https://github.com/Jguer/yay)
- [pacaur](https://github.com/rmarquis/pacaur)
- [trizen](https://github.com/trizen/trizen)
- [pikaur](https://github.com/actionless/pikaur)
- [yaourt](https://github.com/archlinuxfr/yaourt)
- [yay](https://github.com/Jguer/yay)
makepkg will be used if no helper was found or if it's specified explicitly.
- [makepkg](https://wiki.archlinux.org/index.php/makepkg)
## Options
|parameter |required |default |choices |comments|
|--- |--- |--- |--- |---|
|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.|
|use |no |auto |auto, aurman, pacaur, trizen, pikaur, yaourt, yay, 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_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.|
|parameter |required |default |choices |comments|
|--- |--- |--- |--- |---|
|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.|
|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_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.|
### Note
* Either *name* or *upgrade* is required, both cannot be used together.
@@ -27,16 +26,14 @@ 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.
## Installing
1. Clone the *ansibe-aur* repository in your playbook custom-module directory:
```
mkdir --parents library
cd library
git clone git@github.com:kewlfft/ansible-aur.git
```
### AUR package
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.
2. Link the script to `library/aur`:
### Manual installation
Just clone the *ansible-aur* repository into your user custom-module directory:
```
ln --symbolic ansible-aur/aur.py aur
git clone https://github.com/kewlfft/ansible-aur.git ~/.ansible/plugins/modules/aur
```
## Usage

65
aur.py
View File

@@ -1,4 +1,6 @@
#!/usr/bin/env python
#!/usr/bin/python
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from ansible.module_utils.basic import *
from ansible.module_utils.urls import open_url
@@ -9,15 +11,72 @@ import os.path
import tempfile
DOCUMENTATION = '''
---
module: aur
short_description: Manage packages from the AUR
description:
- Manage packages from the Arch User Repository (AUR)
author:
- Kewl <xrjy@nygb.rh.bet(rot13)>
options:
name:
description:
- Name or list of names of the package(s) to install or upgrade.
upgrade:
description:
- Whether or not to upgrade whole system.
type: bool
default: no
use:
description:
- The helper to use, 'auto' uses the first known helper found and makepkg as a fallback.
default: auto
choices: [ auto, aurman, pacaur, trizen, pikaur, yay, makepkg ]
skip_installed:
description:
- Skip operations if the package is present.
type: bool
default: no
skip_pgp_check:
description:
- Skip verification of PGP signatures.
This is useful when installing packages on a host without GnuPG (properly) configured.
Only valid with makepkg.
type: bool
default: no
notes:
- 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.
'''
RETURN = '''
msg:
description: action that has been taken
helper:
the helper that was actually used
'''
EXAMPLES = '''
- name: Install trizen using makepkg, skip if trizen is already installed
aur: name=trizen use=makepkg skip_installed=true
become: yes
become_user: aur_builder
'''
def_lang = ['env', 'LC_ALL=C']
use_cmd = {
'aurman': ['aurman', '-S', '--noconfirm', '--noedit', '--needed'],
'yay': ['yay', '-S', '--noconfirm', '--needed'],
'pacaur': ['pacaur', '-S', '--noconfirm', '--noedit', '--needed'],
'trizen': ['trizen', '-S', '--noconfirm', '--noedit', '--needed'],
'pikaur': ['pikaur', '-S', '--noconfirm', '--noedit', '--needed'],
'yaourt': ['yaourt', '-S', '--noconfirm', '--needed'],
'yay': ['yay', '-S', '--noconfirm'],
'makepkg': ['makepkg', '--syncdeps', '--install', '--noconfirm', '--needed']
}
# optional: aurman, pacaur, trizen have a --aur option, do things only for aur