diff --git a/container/src/finance/completion.bash b/container/src/finance/completion.bash index d9c40d5..68d7018 100644 --- a/container/src/finance/completion.bash +++ b/container/src/finance/completion.bash @@ -135,7 +135,20 @@ function docker-finance::completion() mapfile -t _reply < <(compgen -W "help all${global_arg_delim_2} type${global_arg_delim_2} interval${global_arg_delim_2} year${global_arg_delim_2}" -- "$_cur") ;; root) - # TODO: currently no-op + compopt +o nospace + + [ -z "$DOCKER_FINANCE_CONTAINER_REPO" ] && lib_utils::die_fatal + [ -z "$DOCKER_FINANCE_CONTAINER_PLUGINS" ] && lib_utils::die_fatal + + local -r _args=("-type" "f" "-not" "-path" "*/internal/*" "-not" "-path" "*/impl/*" "-not" "-path" "*/common/*" "!" "-name" "rootlogon.C") + local _root + mapfile -t _root < <({ + find "${DOCKER_FINANCE_CONTAINER_PLUGINS}"/root "${_args[@]}" -printf 'plugins/custom/%P\n' 2>/dev/null + find "${DOCKER_FINANCE_CONTAINER_REPO}"/plugins/root "${_args[@]}" -printf 'plugins/repo/%P\n' 2>/dev/null + find "${DOCKER_FINANCE_CONTAINER_REPO}"/src/root/macro "${_args[@]}" -printf 'macro/%P\n' 2>/dev/null + }) + declare -r _root + mapfile -t _reply < <(compgen -W "help ${_root[*]}" -- "$_cur") ;; taxes) mapfile -t _reply < <(compgen -W "help all${global_arg_delim_2} tag${global_arg_delim_2} account${global_arg_delim_2} year${global_arg_delim_2} write${global_arg_delim_2}" -- "$_cur")