From cbf64a2e14b5696f8c6727a9a3e4dffeb9835586 Mon Sep 17 00:00:00 2001 From: Denis Lehmann Date: Wed, 17 Jul 2024 22:38:14 +0200 Subject: [PATCH] add bash completion --- flake.nix | 1 + gra_completion.bash | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 gra_completion.bash diff --git a/flake.nix b/flake.nix index aafd9db..9b6c572 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,7 @@ src = self; installPhase = '' install -m 755 -D gra $out/bin/gra + install -m 644 -D gra_completion.bash $out/share/bash-completion/completions/gra ''; }; default = self.packages.${system}.gra; diff --git a/gra_completion.bash b/gra_completion.bash new file mode 100644 index 0000000..eddeca2 --- /dev/null +++ b/gra_completion.bash @@ -0,0 +1,16 @@ +function _gra_completion { + + _args="-h --help" + + # Add config values to completion + if [ "${#COMP_WORDS[@]}" -lt 3 ] && [ -f ~/.config/gra.config ]; then + readarray -t lines < ~/.config/gra.config + for line in "${lines[@]}"; do + [[ "$line" =~ ^(.*)= ]] && _args="$_args ${BASH_REMATCH[1]}" + done + fi + + COMPREPLY=($(compgen -W "$_args" -- "${COMP_WORDS[COMP_CWORD]}")) +} + +complete -F _gra_completion gra