# bash completion for ugtrain                              -*- shell-script -*-

# complete options, ~/.ugtrain/*.conf, directories and *.conf in directories

_completeUgtrain()
{
    local options='-h --help -V --version -P --preload -D --discover
        -S --scanmem -A --adapt --pre-cmd'

    local cur prev words cword split
    _init_completion -s || return

    COMPREPLY=()
    case $prev in
        -h|--help|-V|--version)
            return 0
            ;;
    esac

    # complete options
    if [[ "$cur" == -* ]]; then
        case $prev in
            --pre-cmd)
                # error, pre-cmd requires an argument
                return 0
                ;;
        esac
        COMPREPLY=( $( compgen -W '$options' -- $cur ) )
    # complete arguments
    else
        case $prev in
            --pre-cmd)
                # pre-cmd should not be a file name
                return 0
                ;;
        esac

        if [ -d ~/.ugtrain ]; then
            local cwd="$(pwd)"
            cd ~/.ugtrain
            local configs="$(ls *.conf 2>/dev/null)"
            cd "$cwd"
        fi

        COMPREPLY=( $(compgen -W '$configs' -- $cur) )
        _filedir conf
    fi
} &&
complete -F _completeUgtrain ugtrain

# ex: ts=4 sw=4 et filetype=sh
