diff options
author | Jouke Witteveen <j.witteveen@gmail.com> | 2013-10-26 10:45:17 +0200 |
---|---|---|
committer | Jouke Witteveen <j.witteveen@gmail.com> | 2013-10-26 17:29:32 +0200 |
commit | de41bbd471cbac5ef1a9da20fe990a5bd7d4b271 (patch) | |
tree | cf29ddd51df862d647b4c359efc1276555986d8e /src | |
parent | 120d94020aed8d8b5e1b76dc7ee03fa062fab26c (diff) | |
download | netctl-de41bbd471cbac5ef1a9da20fe990a5bd7d4b271.tar.gz netctl-de41bbd471cbac5ef1a9da20fe990a5bd7d4b271.tar.xz |
wifi-menu: ask for a name for the new profile
Some abuse of the stack, but that should be no problem: the user has to
enter around 10000 existing profile names which (s)he does not want to
overwrite before a stack overflow occurs.
Feature suggested by: Paul Bienkowski <opatutlol@aol.com>
Diffstat (limited to 'src')
-rwxr-xr-x | src/wifi-menu | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/wifi-menu b/src/wifi-menu index a62881e..455cdc9 100755 --- a/src/wifi-menu +++ b/src/wifi-menu @@ -93,12 +93,28 @@ ssid_to_profile() return 1 } +# Ask the user for the name of the new profile +confirm_profile() +{ + local msg="Enter a name for the new profile\n" + PROFILE=$(dialog --inputbox "$msg" 10 50 "$PROFILE" --stdout) || return $? + if [[ $PROFILE = */* ]]; then + PROFILE=${PROFILE//\//_} + confirm_profile + elif [[ -e "$PROFILE_DIR/$PROFILE" ]]; then + msg="A profile by the name '$PROFILE' already exists. +Do you want to overwrite it?" + dialog --yesno "$msg" 10 50 --stdout || confirm_profile + fi +} + # Creates a profile for ssid $1. create_profile() { local box flags key msg security PROFILE="$INTERFACE-${1//\//_}" [[ -e "$PROFILE_DIR/$PROFILE" ]] && PROFILE+=".wifi-menu" + confirm_profile || return $? flags=$(grep -m 1 $'\t'"$1\$" "$NETWORKS" | cut -f 2) if [[ "$flags" =~ WPA|WEP ]]; then security=${BASH_REMATCH[0],,} |