#compdef mobapt MobApt MobApt.exe apt apt-get apt-cyg apt-mob apt-moba yum dpkg urpmi rpm

_mobapt() {
    local curcontext="$curcontext" state line
    typeset -A opt_args

    if [ $CURRENT = 2 ] || [ $words[CURRENT-1] = "-y" ] || [ $words[CURRENT-2] = "-m" ]; then
        subcmds=('install:download and install package(s)' 'remove:remove previously installed package(s)' 'search:search for pattern in packages list' 'searchdesc:search for pattern in packages descriptions' '-y:do not prompt for installing or removing package(s)' '-m:use another Cygwin mirror for downloading package(s)' 'list-installed-packages:list all installed packages' 'list-available-packages:list all packages available for install')
        _describe 'command' subcmds
    else
        if [ "$words[CURRENT-1]" = "install" ] || [ "$words[2]" = "install" ] || [ "$words[3]" = "install" ] || [ "$words[4]" = "install" ] || [ "$words[5]" = "install" ]; then
            if [ -e "/etc/setup/cmdlist" ]; then
              tmpstr="$words[CURRENT]"
              if [ ${#tmpstr} -gt 0 ]; then
                if [ -e "/etc/setup/setup.moba.ini" ]; then
                  OLDIFS="$IFS"
                  IFS=$'\n'
                  subcmds=($(/bin/awk '$1 == "@" {myvar=$2; next}; myvar != "" {print myvar":"$0;myvar=""}' /etc/setup/setup.moba.ini))
                  IFS="$OLDIFS"
                  zstyle ':completion:*' list-grouped 'false'
                  _describe 'package' subcmds
                else
                  compadd "$@" `/bin/grep "^$tmpstr" /etc/setup/cmdlist | awk -F':' '{print $1}'`
                fi
              else
                compadd "$@" `/bin/awk -F':' '{print $1}' /etc/setup/cmdlist`
              fi
            fi
        elif [ "$words[CURRENT-1]" = "remove" ] || [ "$words[2]" = "remove" ] || [ "$words[3]" = "remove" ] || [ "$words[4]" = "remove" ] || [ "$words[5]" = "remove" ]; then
            [ -e "/etc/setup/installed.db" ] && compadd "$@" `/bin/awk -F':' '{print $1}' /etc/setup/installed.db`
        elif [ "$words[CURRENT-1]" = "-m" ]; then
            compadd "http://[......]"
        fi
    fi
}

_mobapt "$@"
