From 8c93d1ae883b879a9c36e6dc2e9da2959f9ff5ca Mon Sep 17 00:00:00 2001 From: 3wc <3wc.git@doesthisthing.work> Date: Sun, 30 May 2021 14:33:57 +0200 Subject: [PATCH] Add Bash completion for `abra recipe ..` --- completion/abra.bash | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/completion/abra.bash b/completion/abra.bash index 7fa0d13..1606ef7 100644 --- a/completion/abra.bash +++ b/completion/abra.bash @@ -38,6 +38,22 @@ _abra_complete_apps() mapfile -t COMPREPLY < <(compgen -W "$(_abra_apps)" -- "$1") } +_abra_recipes() +{ + shopt -s nullglob dotglob + local RECIPES=(~/.abra/apps/*) + shopt -u nullglob dotglob + + for RECIPE in "${RECIPES[@]}"; do + _abra_basename "${RECIPE%.env}" + done +} + +_abra_complete_recipes() +{ + mapfile -t COMPREPLY < <(compgen -W "$(_abra_recipes)" -- "$1") +} + _abra_complete() { compopt +o default +o nospace @@ -46,6 +62,7 @@ _abra_complete() local -r cmds=' app server + recipe ' local -r short_opts='-e -h -s -v' local -r long_opts='--env --help --stack --version' @@ -101,6 +118,12 @@ _abra_complete() _abra_complete_apps "$cur" fi ;; + recipe) + # Offer exactly one app completion. + if (( COMP_CWORD == cmd_index + 1 )); then + _abra_complete_recipes "$cur" + fi + ;; #help) # # Offer exactly one command name completion. # if (( COMP_CWORD == cmd_index + 1 )); then