#!/usr/bin/env bash project_dir="$(git rev-parse --show-toplevel)" if [ -z "$project_dir" ]; then exit 1 fi url="$(git remote get-url origin)" re="^(https|git)(:\/\/|@)([^\/:]+)[\/:]([^\/:]+)\/(.+)(.git)*$" if [[ $url =~ $re ]]; then #protocol=${BASH_REMATCH[1]} #separator=${BASH_REMATCH[2]} #hostname=${BASH_REMATCH[3]} user=${BASH_REMATCH[4]} repo=$(basename -s .git "${BASH_REMATCH[5]}") fi project="$user/$repo" if ! pass "ansible/$project" >/dev/null 2>&1; then echo "Error: ansible/$project not found in pass" >&2 exit 1 fi pass_content=$(pass "ansible/$project") pass_path=$project_dir/$(echo "$pass_content" | grep "path:" | cut -d' ' -f2-) case "$1" in edit) ansible-vault edit "$pass_path" exit 0 ;; deploy) pass show "ansible/$project.file" > "$pass_path" exit 0 ;; save) pass insert -m "ansible/$project.file" < "$pass_path" exit 0 ;; pass-edit) pass edit "ansible/$project" exit 0 ;; esac echo "$pass_content" | head -n 1