aboutsummaryrefslogtreecommitdiff
path: root/aur-completion.bash
diff options
context:
space:
mode:
authorpml68 <contact@pml68.dev>2024-12-21 11:19:11 +0100
committerpml68 <contact@pml68.dev>2024-12-21 11:19:11 +0100
commit55fc35e62ef330b3c8722a50361b9c62dbba181f (patch)
treef89b70c6874db6779248230ff9ea5d22f06c9813 /aur-completion.bash
downloadaur-55fc35e62ef330b3c8722a50361b9c62dbba181f.tar.gz
feat: initial commit
Diffstat (limited to 'aur-completion.bash')
-rw-r--r--aur-completion.bash111
1 files changed, 111 insertions, 0 deletions
diff --git a/aur-completion.bash b/aur-completion.bash
new file mode 100644
index 0000000..f8938f9
--- /dev/null
+++ b/aur-completion.bash
@@ -0,0 +1,111 @@
+# This file is generated by [bash-completor](https://github.com/adoyle-h/bash-completor/tree/v0.2.0). Do not modify it manually.
+#
+# [Usage]
+# Put "source aur-completion.bash" in your bashrc.
+#
+# If you want to debug the completion.
+# Search '# Uncomment this line for debug' line in this file.
+#
+# [Update Script]
+# bash-completor -c aur.completor.bash
+
+# shellcheck disable=2207
+# editorconfig-checker-disable
+
+_aur_comp_cmd_opts=( -h --help -l --list -f --force -g --git -c --config )
+
+
+_aur_comp_reply_aur_pkgs ()
+{
+ pkgs=($(find ~/.aur/ -type d -mindepth 1 -maxdepth 1));
+ for i in "${!pkgs[@]}";
+ do
+ pkgs[$i]=$(basename "${pkgs[$i]}");
+ done;
+ COMPREPLY=($(compgen -W "${pkgs[*]}" -- "$cur"))
+}
+
+_aur_comp_reply_dirs ()
+{
+ local IFS=$'\n';
+ compopt -o nospace -o filenames;
+ COMPREPLY=($(compgen -A directory -- "$cur"))
+}
+
+_aur_comp_reply_files ()
+{
+ local IFS=$'\n';
+ compopt -o nospace -o filenames;
+ COMPREPLY=($(compgen -A file -- "$cur"))
+}
+
+_aur_comp_reply_files_in_pattern ()
+{
+ compopt -o nospace -o filenames;
+ local path;
+ while read -r path; do
+ if [[ $path =~ $1 ]] || [[ -d $path ]]; then
+ COMPREPLY+=("$path");
+ fi;
+ done < <(compgen -A file -- "$cur")
+}
+
+_aur_comp_reply_list ()
+{
+ local IFS=', ';
+ local array_list="" array_name;
+ for array_name in $@;
+ do
+ array_list="$array_list \${${array_name}[*]}";
+ done;
+ array_list="${array_list[*]:1}";
+ IFS=$'\n'' ';
+ eval "COMPREPLY=( \$(compgen -W \"$array_list\" -- \"\$cur\") )"
+}
+
+_aur_comp_reply_words ()
+{
+ local IFS=$'\n';
+ COMPREPLY=($(IFS=', ' compgen -W "$*" -- "${cur#=}"))
+}
+
+_aur_comp_reply_set() {
+ local IFS=', '
+ local array_list="" array_name
+ # shellcheck disable=2068
+ for array_name in $@; do
+ array_list="$array_list \${_aur_comp_var_${array_name}[*]}"
+ done
+ array_list="${array_list[*]:1}"
+
+ IFS=$'\n'' '
+ eval "COMPREPLY=( \$(compgen -W \"$array_list\" -- \"\$cur\") )"
+}
+
+_aur_completions() {
+ COMPREPLY=()
+ local cur=${COMP_WORDS[COMP_CWORD]}
+ local prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ # Uncomment this line for debug
+ # echo "[COMP_CWORD:$COMP_CWORD][cur:$cur][prev:$prev][WORD_COUNT:${#COMP_WORDS[*]}][COMP_WORDS:${COMP_WORDS[*]}]" >> bash-debug.log
+
+ # Enter the cmd completion
+ if [[ ${cur:0:1} == [-+] ]]; then
+ # rely options of command
+ _aur_comp_reply_list _aur_comp_cmd_opts
+ elif [[ ${prev:0:1} == [-+] ]]; then
+ case "${prev}" in
+ # rely the value of command option
+ -c) _aur_comp_reply_files ;;
+ --config) _aur_comp_reply_files ;;
+ *) _aur_comp_reply_aur_pkgs ;;
+ esac
+ else
+ # rely the argument of command
+ _aur_comp_reply_aur_pkgs
+ fi
+}
+
+complete -F _aur_completions -o bashdefault aur
+# vi: sw=2 ts=2