# cjdscript bash-completion
#
# install:
#   custom  | /etc/bash_completion.d/cjdscript
#   package | /usr/share/bash-completion/cjdscript
#

# Obtains the list of working scripts from cjdscript
_cjdscript_scriptlist() {
    while read -r; do
        printf '%s ' "${REPLY/*:}"
    done < <(cjdscript -l)
}

# The bash-completion function for cjdscript
_cjdscript() {
    # Configure bash-completion variables and initialize
    local cur prev words cword split
    _init_completion -s || return

    # Don't provide completion for command-line options
    [[ ! $prev =~ ^(-u|--update|-v|--verbose|-l|--list|-h|--help)$ ]] \
        || return

    # Provide the list of scripts matching the current input
    if (( COMP_CWORD == 1 )); then
        COMPREPLY=( $( compgen -W '$( _cjdscript_scriptlist )' -- "$cur" ) )
    else
        compopt -o filenames
        COMPREPLY=( $(compgen -f -- "$cur") )
    fi
} &&
complete -F _cjdscript cjdscript

