###########################################################################
#   This file is part of netctl-gui                                       #
#                                                                         #
#   netctl-gui is free software: you can redistribute it and/or           #
#   modify it under the terms of the GNU General Public License as        #
#   published by the Free Software Foundation, either version 3 of the    #
#   License, or (at your option) any later version.                       #
#                                                                         #
#   netctl-gui is distributed in the hope that it will be useful,         #
#   but WITHOUT ANY WARRANTY; without even the implied warranty of        #
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
#   GNU General Public License for more details.                          #
#                                                                         #
#   You should have received a copy of the GNU General Public License     #
#   along with netctl-gui. If not, see http://www.gnu.org/licenses/       #
###########################################################################


# variables
_netctl_gui_arglist=(
    '--detached'
    '--maximized'
    '--minimized'
    '--about'
    '--netctl-auto'
    '--settings'
    '-e'
    '--essid'
    '-o'
    '--open'
    '-s'
    '--select'
    '-c'
    '--config'
    '-d'
    '--debug'
    '--default'
    '--set-opts'
    '-t'
    '--tab'
    '-v'
    '--version'
    '-i'
    '--info'
    '-h'
    '--help'
)

_netctl_gui_settings=(
    'CLOSE_HELPER'
    'CLOSETOTRAY'
    'CTRL_DIR'
    'CTRL_GROUP'
    'FORCE_SUDO'
    'HELPER_PATH'
    'HELPER_SERVICE'
    'IFACE_DIR'
    'LANGUAGE'
    'NETCTL_PATH'
    'NETCTLAUTO_PATH'
    'NETCTLAUTO_SERVICE'
    'PID_FILE'
    'PREFERED_IFACE'
    'PROFILE_DIR'
    'RFKILL_DIR'
    'SKIPCOMPONENTS'
    'STARTTOTRAY'
    'SUDO_PATH'
    'SYSTEMCTL_PATH'
    'SYSTRAY'
    'USE_HELPER'
    'WPACLI_PATH'
    'WPASUP_PATH'
    'WPA_DRIVERS'
)

_netctl_gui_tabs=(
    '1'
    '2'
    '3'
)

_netctl_profiles() {
    echo $(find /etc/netctl -maxdepth 1 -type f -printf "%f\n")
}


# work block
_netctl_gui() {
    COMPREPLY=()
    wantfiles='-@(c|-config)'
    wantprofiles='-@(o|-open|s|-select)'
    wantsettings='-@(-set-opts)'
    wantstring='-@(e|-essid)'
    wanttabs='-@(t|-tab)'
    _get_comp_words_by_ref cur prev words cword

    if [[ $prev = $wantfiles ]]; then
        _filedir
    elif [[ $prev = $wantprofiles ]]; then
        COMPREPLY=($(compgen -W '$(_netctl_profiles)' -- "$cur"))
    elif [[ $prev = $wantsettings ]]; then
        COMPREPLY=($(compgen -S ',' -W '${_netctl_gui_settings[@]}' -- "$cur"))
    elif [[ $prev = $wantstring ]]; then
        COMPREPLY=()
    elif [[ $prev = $wanttabs ]]; then
        COMPREPLY=($(compgen -W '${_netctl_gui_tabs[@]}' -- "$cur"))
    else
        COMPREPLY=($(compgen -W '${_netctl_gui_arglist[@]}' -- "$cur"))
    fi

    true
}

complete -F _netctl_gui netctl-gui
