> FWIW, I've been using the attached bash-completion file for some
> months now, however since I am not a bash-completion guru I didn't
> want to plague anyone else with any things I've messed up with it.
Great that means it works :)
I'm not a bash-completion guru as well, but i thought it was useful
for someone else, since we're two... that means we could be more :)
 
> @Angelo: Feel free to use anything from it, if any, to add to the file
> you have (note that I disabled the "auto completion of package names
> in SVN" since it's too slow for taste).
The attached one has it activated, i believe it is the same as yours but
for that change.
FWIW i find slower urpmi bash_complention, expecially if i want to
install a local package - i always forget ./XXX- you can figure out :)

HTH,
        Angelo

# mgarepo(1) completion
#
_cauldron_packages()
{
        COMPREPLY=( $( compgen -W '$(svn ls \
                svn+ssh://svn.mageia.org/svn/packages/cauldron \
                | sed -e "s|/$||" )' -- $cur ) )
}

_mgarepo_actions()
{
        COMPREPLY=( $( compgen -W 'import create checkout co update info log \
                tag submit extract sync commit ci build strip mass-update \
                help' -- $cur ) )
}

_mgarepo()
{
        local cur prev command options i

        COMPREPLY=()
        cur=${COMP_WORDS[COMP_CWORD]}

        if [[ $COMP_CWORD -eq 1 ]] ; then
                _mgarepo_actions
        else
                prev=${COMP_WORDS[COMP_CWORD-1]}

                case "$prev" in
                        -@(c|-config)) 
                                _filedir
                                return 0
                                ;;
                esac

                command=${COMP_WORDS[1]}

                if [[ "$cur" == -* ]]; then
                        # possible options for the command
                        case $command in
                                @(import|create))
                                        options="--revision --distribution \
                                                --branch --message --nocommit"
                                        ;;
                                @(checkout|co|info|log))
                                        options="--revision --distribution \
                                                --branch"
                                        ;;
                                update)
                                        options="--revision --distribution \
                                                --branch --release \
                                                --spec-line-expression \
                                                --keep-on-failure --message \
                                                --target --nocommit --nosubmit"
                                        ;;
                                mass-update)
                                        options="--include --exclude \
                                                --keep-on-failure --nocommit \
                                                --nosubmit"
                                        ;;
                                tag)
                                        options="--revision"
                                        ;;
                                submit)
                                        options="--revision --distribution \
                                                --branch --target"
                                        ;;
                                extract)
                                        options="--revision --distribution \
                                                --branch --destdir --noprefix"
                                        ;;
                                @(commit|ci))
                                        options="--sync --message"
                                        ;;
                        esac
                        options="$options --verbose -v --config -c --help"
                        COMPREPLY=( $( compgen -W "$options" -- $cur ) )
                else
                        case $command in
                                help)
                                        _mgarepo_actions
                                        return 0
                                        ;;
                                import)
                                        _filedir 'src.rpm'
                                        return 0
                                        ;;
                                
@(create|checkout|co|update|info|log|tag|submit|extract))
                                        _cauldron_packages
                                        return 0
                                        ;;
                                @(sync|commit|ci))
                                        _filedir -d
                                        return 0
                                        ;;
                                @(build|strip))
                                        _filedir 'spec'
                                        return 0
                                        ;;
                        esac
                fi
        fi

}
complete -F _mgarepo $filenames mgarepo 

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to