From 55fc35e62ef330b3c8722a50361b9c62dbba181f Mon Sep 17 00:00:00 2001 From: pml68 Date: Sat, 21 Dec 2024 11:19:11 +0100 Subject: feat: initial commit --- aur-completion.bash | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 aur-completion.bash (limited to 'aur-completion.bash') 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 -- cgit v1.2.3