#!/bin/bash _pkgbuilder() { # shellcheck disable=SC2034 local cur prev words cword args _init_completion || return local -r cmdargs="list infos create build bump checkupdate update pushtoaur checkupdateall updateall" local -r cnfargs="--help --cnf --notify --nopush --dry-run --dbg" #local cnffile=/etc/pkgbuilder/config local pkgdir="/etc/pkgbuilder/packages" local modeldir="/usr/share/pkgbuilder/models" if [[ ${COMP_WORDS[*]} == *"--help"* ]]; then return fi args=${cmdargs} for arg in ${cmdargs}; do if [[ ${COMP_WORDS[*]} == *" ${arg} "* ]]; then args="" fi done for arg in ${cnfargs}; do if [[ ${COMP_WORDS[*]} != *"${arg}"* ]]; then args+=" ${arg}" fi done case $prev in --help) return ;; --cnf) _filedir return ;; create) local -r MDLLIST=$(\ls ${modeldir}) # shellcheck disable=SC2207 COMPREPLY=($(compgen -W "${MDLLIST}" -- "${COMP_WORDS[COMP_CWORD]}")) return ;; infos | build | bump | checkupdate | update | pushtoaur) local -r PKGLIST=$(\ls ${pkgdir}) # shellcheck disable=SC2207 COMPREPLY=($(compgen -W "${PKGLIST}" -- "${COMP_WORDS[COMP_CWORD]}")) return ;; *) # shellcheck disable=SC2207 COMPREPLY=($(compgen -W "${args}" -- "${COMP_WORDS[COMP_CWORD]}")) return ;; esac } && complete -F _pkgbuilder pkgbuilder