]> arthur.barton.de Git - ansible-collection-boilerplate.git/blob - bin/ap
The "a" wrapper requires the bash(1) interpreter!
[ansible-collection-boilerplate.git] / bin / ap
1 #!/bin/bash
2 #
3 # Ansible Collection Boilerplate:
4 # "ap": ansible-playbook(1) wrapper script.
5 #
6
7 # Change working directory to the base directory ...
8 cd "$(dirname "$0")/.." || exit 1
9
10 # Prepare environment ...
11 set -e
12 pwd
13 test -x "${PWD}/.venv/bin/ansible-playbook" || make "${PWD}/.venv/bin/ansible"
14
15 # Get playbook name:
16 play="$1"
17 shift
18
19 # Search playbook ...
20 unset playbook
21 for dir in \
22         . \
23         playbooks{,/deploy,/site} \
24         ansible_galaxy/ansible_collections/*/*/playbooks \
25 ; do
26         playbook="${dir}/${play}.yml"
27         test -r "${playbook}" && break
28         unset playbook
29 done
30 [[ -n "${playbook}" ]] || playbook="${play}"
31
32 # Options ...
33 options=("$@")
34
35 [[ -r .ansible-vault-secret ]] && options+=("--vault-password-file=.ansible-vault-secret")
36
37 # Run ansible-playbook(1):
38 set -x
39 "${PWD}/.venv/bin/ansible-playbook" "${playbook}" "${options[@]}"