From 33a4c4b01bd9aacec19533add10884171b608f5b Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Sun, 29 Jan 2017 15:20:14 +0000 Subject: [PATCH] Version 0.3 --- ChangeLog | 10 ++++ setnet.8 | 9 ++-- setnet.8.gz | Bin 3015 -> 3037 bytes setnet.sh | 136 +++++++++++++++++++--------------------------------- 4 files changed, 65 insertions(+), 90 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6d2d9a6..512f3bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2017-01-29 KatolaZ + + * setnet.sh: + * removed "Load file" and "New File" in WiFi configuration + +2017-01-23 KatolaZ + + * setnet.sh: + * fixed a few minors bugs + 2017-01-20 KatolaZ * setnet.sh (0.3): diff --git a/setnet.8 b/setnet.8 index a312b88..7be6108 100644 --- a/setnet.8 +++ b/setnet.8 @@ -8,6 +8,7 @@ .Sh SYNOPSIS .Nm setnet.sh .Op Fl c Ar config_file +.Op Fl d Ar trace_file .Op Fl h .Op Fl v .Sh DESCRIPTION @@ -20,10 +21,8 @@ including ip(8), dhclient(8), and wpa_cli(8). .Pp setnet.sh allows to configure static and/or DHCP-based connections to a LAN/WLAN, and to manage the authentication to a Wi-Fi network. At -present, only open authentication (no key) and WPA-Personal -authentication (WPA-PSK/WPA2-PSK) are supported. The support for basic -WPA-Enterprise authentication (WPA-EAP-PEAP and WPA-EAP-TLS) is under -development. +present, open (no key), WPA-Personal (WPA-PSK and WPA2-PSK), and +WPA-Enterprise (EAP/PEAP or EAP/TLS) are supported. .Pp setnet.sh can be also used as a minimal interface to basic network @@ -40,6 +39,8 @@ setnet.sh recognises the following options: .Bl -tag -width Ds .It Fl c Ar config_file specify a configuration file +.It Fl d Ar trace_file +enable dialog debug, and write the trace to the provided trace_file .It Fl h print a minimal help and exit .It Fl v diff --git a/setnet.8.gz b/setnet.8.gz index 15658486aa6460a1907313db9b981c297eaf9f2e..247c3031f4e78a33c8db534f2130e7ad807e6c86 100644 GIT binary patch literal 3037 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 literal 3015 zcmV;&3pn&2iwFpZX>nKp19N3`Ze?^XH~^hlZEqvD5&q6!G0=xX4&+smqRHV91XXO= zr^c2Pubk@@1rF4Tk_fMs+vTow%7^~;K0|U}^l~jw;~-ny<#0GJ&pb01{j*1lt)jI_ zQ*+SSh6?qsO4-tqER_4A3$?=Yf@GS~PG*$Ljk1x5?pO3TnN_kl(zibh==*QK`w@#J z#pA_vyr6d!KR=6TX6Z?1)fW-PTbhoZ$0C~U$f`0^Wn{PbwxXTR^iHPQmSndI$JnIM zdFf8YYX?)jQDU;S-c*GwwaMt9%Pp<6OwERLR;pqx6XlMGKTT)zcoLr{M0`yo!>b8?Gl)QCU^A zy3$fw*cDgtx9ER&6Vaq37K0=BltUr&9D8J8s%%B&Rtap<36;jA)}4#BGsBoQjj>ul zBa+zlQQto3_E^=2%6x z#L)@w973i04|nrhe>uF8sf5+y9YWI6Xgd6e4}T1Vczd~P$O@ks1o?a5p$y6g<3=

kp51WC4p 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 - - if [ $? -eq 0 ]; then - SEL_FILE=$(cat ${TMPFILE}) - while [ -d "${SEL_FILE}" ]; do - eval "${DIALOG} --fselect ${SEL_FILE} ${WINDOW_HEIGHT} ${WINDOW_WIDTH}" \ - 2>${TMPFILE} - if [ $? -eq 0 ]; then - SEL_FILE=$(cat ${TMPFILE}) - else - eval "${DIALOG} --msgbox 'WPA_FILE was not modified' \ - ${INFO_HEIGHT} ${INFO_WIDTH}" - return - fi - done - - if [ -f "${SEL_FILE}" ]; then - WPA_FILE=${SEL_FILE} - eval "${DIALOG} --defaultno --yesno \ - 'WPA_FILE changed to ${WPA_FILE}\nRestart wpa_supplicant?' \ - ${INFO_HEIGHT} ${INFO_WIDTH}" - if [ $? -eq 0 ]; then - wifi_restart_wpa ${DEVNAME} ${WPA_FILE} - fi - else - eval "${DIALOG} --msgbox 'Invalid file name!\n WPA_FILE *not* changed' \ - ${WINDOW_HEIGHT} ${WINDOW_WIDTH}" - return - fi - else - eval "${DIALOG} --msgbox 'WPA_FILE was not modified' \ - ${INFO_HEIGHT} ${INFO_WIDTH}" - fi - -} - - ##function config_wifi(){ @@ -1281,7 +1243,7 @@ config_wifi(){ while true; do CUR_NET=$(wpa_cli -i ${DEVNAME} status | grep "^ssid" | cut -d "=" -f 2) eval "${DIALOG} --cancel-label 'Up' \ - --menu 'Configuring ${DEVNAME}\tCurrent network: ${CUR_NET}\n(Current file: ${WPA_FILE})' \ + --menu 'Configuring ${DEVNAME}\nCurrent network: ${CUR_NET}\n(Current file: ${WPA_FILE})' \ ${WINDOW_HEIGHT} ${WINDOW_WIDTH} 12 \ 'Restart' 'Restart wpa_supplicant' \ 'Enable' 'Enable a configured network' \ @@ -1290,9 +1252,7 @@ config_wifi(){ 'Remove' 'Delete an existing network' \ 'Show' 'Show current configuration file' \ 'Edit' 'Edit current configuration file' \ - 'Save' 'Save configuration to file'\ - 'Load' 'Load configuration from file'\ - 'New' 'Create new configuration file' " \ + 'Save' 'Save configuration to file' "\ 2>${TMPFILE} if [ $? = "1" ]; then @@ -1326,12 +1286,6 @@ config_wifi(){ "Save") wifi_save_file ${DEVNAME} ;; - "Load") - wifi_load_file ${DEVNAME} - ;; - "New") - unimplemented "New" - ;; esac done @@ -2099,7 +2053,13 @@ initialise(){ chmod 600 ${LOGFILE} - log "setnet" "Starting afresh on $(date)" + log "initialise" "Starting afresh on $(date)" + log "initialise" "Using TMPFILE: ${TMPFILE}" + log "initialise" "Using LOGFILE: ${LOGFILE}" + + if [ -n ${DEBUG_MODE} ]; then + log "initialise" "Running in debug mode -- dumping dialog trace to ${TRACE_FILE}" + fi EUID=$(id -ru) if [ "${EUID}" = "0" ] && @@ -2186,30 +2146,34 @@ main(){ SETNETRC="" -while getopts ":c:hv" opt; do +while getopts ":c:d:hv" opt; do case $opt in c) - #echo "Got option -c ${OPTARG}" - SETNETRC=$(realpath ${OPTARG}) - #echo "SETNETRC: ${SETNETRC}" - ;; + #echo "Got option -c ${OPTARG}" + SETNETRC=$(realpath ${OPTARG}) + #echo "SETNETRC: ${SETNETRC}" + ;; h) - show_help $(basename $0) - exit 1 - ;; + show_help $(basename $0) + exit 1 + ;; v) - show_version $(basename $0) - exit 1 - ;; - \?) - echo "Invalid option: -${OPTARG}" - exit 1 - ;; - :) - echo "Option -${OPTARG} requires an argument" - exit 1 - ;; + show_version $(basename $0) + exit 1 + ;; + d) + TRACE_FILE=$(realpath ${OPTARG}) + set_debug ${TRACE_FILE} + ;; + \?) + echo "Invalid option: -${OPTARG}" + exit 1 + ;; + :) + echo "Option -${OPTARG} requires an argument" + exit 1 + ;; esac done