configs/home/.zsh/themes/spaceship-prompt/sections/ansible.zsh

54 lines
2.1 KiB
Bash
Raw Permalink Normal View History

2022-12-01 13:28:20 +01:00
#
# Ansible
#
# Ansible is a suite of software tools that enables infrastructure as code.
# Link: https://docs.ansible.com/ansible/latest/index.html
# ------------------------------------------------------------------------------
# Configuration
# ------------------------------------------------------------------------------
SPACESHIP_ANSIBLE_SHOW="${SPACESHIP_ANSIBLE_SHOW=true}"
SPACESHIP_ANSIBLE_ASYNC="${SPACESHIP_ANSIBLE_ASYNC=true}"
SPACESHIP_ANSIBLE_PREFIX="${SPACESHIP_ANSIBLE_PREFIX="$SPACESHIP_PROMPT_DEFAULT_PREFIX"}"
SPACESHIP_ANSIBLE_SUFFIX="${SPACESHIP_ANSIBLE_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"}"
SPACESHIP_ANSIBLE_SYMBOL="${SPACESHIP_ANSIBLE_SYMBOL="🅐 "}"
SPACESHIP_ANSIBLE_COLOR="${SPACESHIP_ANSIBLE_COLOR="white"}"
# ------------------------------------------------------------------------------
# Section
# ------------------------------------------------------------------------------
spaceship_ansible() {
[[ $SPACESHIP_ANSIBLE_SHOW == false ]] && return
# Check if ansible is installed
spaceship::exists ansible || return
# Show ansible section only when there are ansible-specific files in current
# working directory.
# Here glob qualifiers are used to check if files with specific extension are
# present in directory. Read more about them here:
# https://zsh.sourceforge.net/Doc/Release/Expansion.html
local ansible_configs="$(spaceship::upsearch ansible.cfg .ansible.cfg)"
local yaml_files="$(echo ?(*.yml|*.yaml)([1]N^/))"
local detected_playbooks
if [[ -n "$yaml_files" ]]; then
detected_playbooks="$(spaceship::grep -oE "tasks|hosts|roles" $yaml_files)"
fi
[[ -n "$ansible_configs" || -n "$detected_playbooks" ]] || return
# Retrieve ansible version
local ansible_version=$(ansible --version | head -1 | spaceship::grep -oE '[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]')
# Display ansible section
spaceship::section \
--color "$SPACESHIP_ANSIBLE_COLOR" \
--prefix "$SPACESHIP_ANSIBLE_PREFIX" \
--suffix "$SPACESHIP_ANSIBLE_SUFFIX" \
--symbol "$SPACESHIP_ANSIBLE_SYMBOL" \
"v$ansible_version"
}