# shellcheck shell=dash

___x_cmd_mac_net_location(){
    [ $# -gt 0 ]    ||          set -- status

    local op="$1";  shift
    case "$op" in
        create|rm|ls|status)    ___x_cmd_mac_net_location_"$op"        "$@" ;;

        sw|switch)              ___x_cmd_mac_net_location_switch       "$@" ;;
        -h|--help)              ___x_cmd help -m mac net location           ;;

        *)                      N=mac M="Unknown subcmd -> $op"  log:ret:64 ;;
    esac
}

___x_cmd_mac_net_location_create(){
    local location_name="$1";   [ -n "$location_name" ] || N=mac M="Please provide location name" log:ret:64
    [ $# -gt 0 ] || set -- populate
    ___x_cmd_mac___cmd networksetup -createlocation "${location_name}" "$@"
}

___x_cmd_mac_net_location_rm(){
    local location_name="$1";   [ -n "$location_name" ] || N=mac M="Please provide location name" log:ret:64
    ___x_cmd_mac___cmd networksetup -deletelocation "$location_name"
}

___x_cmd_mac_net_location_ls(){
    ___x_cmd_mac___cmd networksetup -listlocations
}

___x_cmd_mac_net_location_switch(){
    local location_name="$1";   [ -n "$location_name" ] || N=mac M="Please provide location name" log:ret:64
    ___x_cmd_mac___cmd networksetup -switchtolocation "$location_name"
}

___x_cmd_mac_net_location_status(){
    printf "%s" "current-location: "
    ___x_cmd_mac___cmd networksetup -getcurrentlocation
}
