Date: Fri, 02 Dec 2016 21:48:12 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-sysinstall@FreeBSD.org Subject: [Bug 214933] [patch] bsdinstall: add support for "hidden" Wi-Fi networks Message-ID: <bug-214933-2920-477lXQnLpy@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-214933-2920@https.bugs.freebsd.org/bugzilla/> References: <bug-214933-2920@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214933 --- Comment #5 from Devin Teske <dteske@FreeBSD.org> --- In more than one place, please replace the following construct: case $? in 0) # many lines ;; *) exit 1 esac with the following, reducing the indentation of the primary block: [ $? -eq 0 ] || exit 1 # many lines The scripts/wlanconfig module includes "dialog.subr" which provides both f_dialog_noyes() and f_dialog_yesno() (depending on which you want to be the default choice). See "bsdconfig api dialog" for more information. Please change: dialog --backtitle "FreeBSD Installer" --title "Network Selection" --yesno "Do you want to select the network manually?" 0 0 Into the following: f_dialog_yesno "Do you want to select the network manually?" And there's no need to test $? exclusively, so instead of this: dialog ... [ $? -eq 0 ] || exit 1 You can instead simply say: f_dialog_yesno ... || exit 1 However, "exit" by default retains the status of the last command when not given a number, so in reality you can say this: f_dialog_yesno ... || exit And since the "||" is an "r-value seeking" operand, you can put the exit on a line of its own if you like for style: f_dialog_yesno "Do you want to select the network manually?" || exit # many lines That's the desired setup. The way you have it, everytime you call dialog, the following code is indented further and further, whereas I would like to see: f_dialog_yesno ... || exit # ... f_dialog_input ... || exit # ... f_dialog_input ... || exit Which brings us to the API for input dialog boxen. Use f_dialog_input() instead of "var=$( dialog ... --inputbox ... )". So instead of: NETWORK=`dialog --backtitle "FreeBSD Installer" --title "Network Selection" --inputbox "Enter SSID" 0 0 2>&1 1>&3` First of all, we don't use `...` but instead $(...) as the former is not nest-able. But instead of the above, we would use f_dialog_input() in the following way (see: bsdconfig api -dF 'f_dialog_input$'): f_dialog_title "Network Selection" f_dialog_input NETWORK "Enter SSID" || exit f_dialog_title_restore Which introduces how to set the title if/when necessary. Feel free to use it where most appropriate (e.g., before the f_dialog_yesno()). NOTE: It's important to utilize f_dialog_title()/f_dialog_title_restore() because some systems have backtitle and title reversed (and the API takes this into consideration with respect to which back-end system is in-use). The restore is not strictly necessary and is optional since scripts/wlanconfig runs in a discrete namespace, unshared with anything else (hence your ability to use "exit" without messing up the flow of bsdinstall). However, all those issues aside, you completely neglected thew new wlan API. See the following commands for required information: % bsdconfig api media/wlan # brief oversight of functions % bsdconfig api -da media/wlan | less -R # more verbose info You should add a line toward the top scripts/wlanconfig: f_include $BSDCFG_SHARE/media/wlan.subr See also: /usr/libexec/bsdconfig/120.networking/wlanconfig The bsdconfig wireless networking is much more advanced than, and is available to, bsdinstall's. Both have a "wlanconfig" module (e.g., see "bsdconfig wifi" or "bsdconfig wlan" or "bsdconfig wireless" -- all aliases to wlanconfig), but bsdconfig's is WAY more advanced than bsdinstall's. It's worth taking a look at bsdconfig's wlanconfig for inspiration, but more importantly, you can actually *use* the code there in the installer. Go ahead and steal code from bsdconfig to make bsdinstall better. I welcome that immensely ;D -- You are receiving this mail because: You are the assignee for the bug.help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-214933-2920-477lXQnLpy>
