_shiny-mirrors() {
    local i cur prev opts cmds
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    cmd=""
    opts=""

    for i in ${COMP_WORDS[@]}
    do
        case "${i}" in
            shiny-mirrors)
                cmd="shiny-mirrors"
                ;;
            
            conf)
                cmd+="__conf"
                ;;
            config)
                cmd+="__config"
                ;;
            help)
                cmd+="__help"
                ;;
            refresh)
                cmd+="__refresh"
                ;;
            show)
                cmd+="__show"
                ;;
            status)
                cmd+="__status"
                ;;
            *)
                ;;
        esac
    done

    case "${cmd}" in
        shiny-mirrors)
            opts=" -h -V  --help --version   config refresh status help  conf"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        
        shiny__mirrors__conf)
            opts=" -c -C -p -b -s -h -V  --country --continent --protocol --branch --setup --help --version --branch_value --country_value --continent_value --protocol_value   show help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                --branch_value)
                    COMPREPLY=($(compgen -W "None Stable Testing Unstable" -- "${cur}"))
                    return 0
                    ;;
                --country_value)
                    COMPREPLY=($(compgen -W "None Global Algeria Angola Benin Botswana Burkina Faso Burundi Cameroon Cape Verde Central African Republic Chad Comoros Republic Of The Congo Democratic Republic Of The Congo Ivory Coast Djibouti Equatorial Guinea Egypt Eritrea Ethiopia Gabon Gambia Ghana Guinea Guinea Bissau Kenya Lesotho Liberia Libya Madagascar Malawi Mali Mauritania Mauritius Morocco Mayotte Mozambique Namibia Niger Nigeria Rwanda Reunion Sao Tome And Principe Senegal Seychelles Sierra Leone Somalia South Africa South Sudan Sudan Eswatini Tanzania Togo Tunisia Uganda Western Sahara Zambia Zimbabwe Afghanistan Armenia Azerbaijan Bahrain Bangladesh Bhutan Brunei Cambodia China East Timor India Indonesia Iran Iraq Israel Japan Jordan Kazakhstan Kuwait Kyrgyzstan Laos Lebanon Macau Malaysia Maldives Mongolia Myanmar Nepal North Korea Oman Pakistan Palestine Philippines Qatar Saudi Arabia Singapore South Korea Sri Lanka Syria Tajikistan Thailand Turkey Turkmenistan Taiwan United Arab Emirates Uzbekistan Vietnam Yemen Hong Kong Georgia Albania Andorra Austria Belarus Belgium Bosnia And Herzegovina Bulgaria Croatia Cyprus Czechia Denmark Estonia Finland Germany Greece Hungary Iceland Ireland Italy Kosovo Latvia Liechtenstein Lithuania Luxembourg North Macedonia Malta Moldova Monaco Montenegro Netherlands Norway Poland Portugal Romania Russia San Marino Serbia Slovakia Slovenia France Spain Sweden Switzerland Ukraine United Kingdom Vatican City Faroe Islands Isle Of Man Gibraltar Anguilla Antigua And Barbuda Bahamas Belize Bermuda Barbados British Virgin Islands Cayman Islands Canada Costa Rica Cuba Dominica Dominican Republic El Salvador Grenada Greenland Guatemala Guadeloupe Haiti Honduras Jamaica Martinique Mexico Montserrat Nicaragua Panama Puerto Rico Saint Barthelemy Saint Kitts And Nevis Saint Lucia Sint Maarten Saint Martin Saint Pierre And Miquelon Saint Vincent And The Grenadines Turks And Caicos Islands United States Us Virgin Islands Argentina Bolivia Brazil Chile Colombia Ecuador Falkland Islands French Guiana Guyana Peru Paraguay Trinidad And Tobago Uruguay Suriname Venezuela Curacao Aruba Australia Fiji New Zealand Micronesia Kiribati Marshall Islands Nauru Palau Papua New Guinea Samoa Solomon Islands Tonga Tuvalu Vanuatu Timor Leste New Caledonia French Polynesia Cook Islands Wallis And Futuna Niue Tokelau Northern Mariana Islands Guam" -- "${cur}"))
                    return 0
                    ;;
                --continent_value)
                    COMPREPLY=($(compgen -W "None Europe Asia Oceania Africa North America South America" -- "${cur}"))
                    return 0
                    ;;
                --protocol_value)
                    COMPREPLY=($(compgen -W "None Http Https Ftp Ftps" -- "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        shiny__mirrors__config)
            opts=" -c -C -p -b -s -h -V  --country --continent --protocol --branch --setup --help --version --branch_value --country_value --continent_value --protocol_value   show help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                --branch_value)
                    COMPREPLY=($(compgen -W "None Stable Testing Unstable" -- "${cur}"))
                    return 0
                    ;;
                --country_value)
                    COMPREPLY=($(compgen -W "None Global Algeria Angola Benin Botswana Burkina Faso Burundi Cameroon Cape Verde Central African Republic Chad Comoros Republic Of The Congo Democratic Republic Of The Congo Ivory Coast Djibouti Equatorial Guinea Egypt Eritrea Ethiopia Gabon Gambia Ghana Guinea Guinea Bissau Kenya Lesotho Liberia Libya Madagascar Malawi Mali Mauritania Mauritius Morocco Mayotte Mozambique Namibia Niger Nigeria Rwanda Reunion Sao Tome And Principe Senegal Seychelles Sierra Leone Somalia South Africa South Sudan Sudan Eswatini Tanzania Togo Tunisia Uganda Western Sahara Zambia Zimbabwe Afghanistan Armenia Azerbaijan Bahrain Bangladesh Bhutan Brunei Cambodia China East Timor India Indonesia Iran Iraq Israel Japan Jordan Kazakhstan Kuwait Kyrgyzstan Laos Lebanon Macau Malaysia Maldives Mongolia Myanmar Nepal North Korea Oman Pakistan Palestine Philippines Qatar Saudi Arabia Singapore South Korea Sri Lanka Syria Tajikistan Thailand Turkey Turkmenistan Taiwan United Arab Emirates Uzbekistan Vietnam Yemen Hong Kong Georgia Albania Andorra Austria Belarus Belgium Bosnia And Herzegovina Bulgaria Croatia Cyprus Czechia Denmark Estonia Finland Germany Greece Hungary Iceland Ireland Italy Kosovo Latvia Liechtenstein Lithuania Luxembourg North Macedonia Malta Moldova Monaco Montenegro Netherlands Norway Poland Portugal Romania Russia San Marino Serbia Slovakia Slovenia France Spain Sweden Switzerland Ukraine United Kingdom Vatican City Faroe Islands Isle Of Man Gibraltar Anguilla Antigua And Barbuda Bahamas Belize Bermuda Barbados British Virgin Islands Cayman Islands Canada Costa Rica Cuba Dominica Dominican Republic El Salvador Grenada Greenland Guatemala Guadeloupe Haiti Honduras Jamaica Martinique Mexico Montserrat Nicaragua Panama Puerto Rico Saint Barthelemy Saint Kitts And Nevis Saint Lucia Sint Maarten Saint Martin Saint Pierre And Miquelon Saint Vincent And The Grenadines Turks And Caicos Islands United States Us Virgin Islands Argentina Bolivia Brazil Chile Colombia Ecuador Falkland Islands French Guiana Guyana Peru Paraguay Trinidad And Tobago Uruguay Suriname Venezuela Curacao Aruba Australia Fiji New Zealand Micronesia Kiribati Marshall Islands Nauru Palau Papua New Guinea Samoa Solomon Islands Tonga Tuvalu Vanuatu Timor Leste New Caledonia French Polynesia Cook Islands Wallis And Futuna Niue Tokelau Northern Mariana Islands Guam" -- "${cur}"))
                    return 0
                    ;;
                --continent_value)
                    COMPREPLY=($(compgen -W "None Europe Asia Oceania Africa North America South America" -- "${cur}"))
                    return 0
                    ;;
                --protocol_value)
                    COMPREPLY=($(compgen -W "None Http Https Ftp Ftps" -- "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        shiny__mirrors__config__help)
            opts=" -h -V  --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        shiny__mirrors__config__show)
            opts=" -h -V  --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        shiny__mirrors__help)
            opts=" -h -V  --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        shiny__mirrors__refresh)
            opts=" -u -d -i -h -V -m -t -l -f -p -M -L  --updated_only --dry_run --interactive --help --version --max --timeout --last_sync --file_size --ipv --measure_method --limit  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                --max)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                    -m)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --timeout)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                    -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --last_sync)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                    -l)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --file_size)
                    COMPREPLY=($(compgen -W "Big Medium Small" -- "${cur}"))
                    return 0
                    ;;
                    -f)
                    COMPREPLY=($(compgen -W "Big Medium Small" -- "${cur}"))
                    return 0
                    ;;
                --ipv)
                    COMPREPLY=($(compgen -W "IPv4 IPv6" -- "${cur}"))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -W "IPv4 IPv6" -- "${cur}"))
                    return 0
                    ;;
                --measure_method)
                    COMPREPLY=($(compgen -W "Total Transfer" -- "${cur}"))
                    return 0
                    ;;
                    -M)
                    COMPREPLY=($(compgen -W "Total Transfer" -- "${cur}"))
                    return 0
                    ;;
                --limit)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                    -L)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        shiny__mirrors__status)
            opts=" -h -V  --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
    esac
}

complete -F _shiny-mirrors -o bashdefault -o default shiny-mirrors
