On Tue, Jun 26, 2018 at 12:27 PM Emil Velikov <[email protected]> wrote:
>
> From: Emil Velikov <[email protected]>
>
> Currently each profile is handles in two stages:
> - a unique value is returned for a set of patterns matches
> - depending on the value the profile/essid is added to global lists
>
> A shorter and simpler solution is to omit the unnecessary value
> passing/processing all together.
>
> Cc: Jouke Witteveen <[email protected]>
> Signed-off-by: Emil Velikov <[email protected]>
> ---
> Jouke, let me know if you'd like this rebased on top of your patch.
> Pardon if you're getting this twice. The initial submission was rejected
> by the ML :-\
> ---
> src/wifi-menu | 40 ++++++++++++++--------------------------
> 1 file changed, 14 insertions(+), 26 deletions(-)
>
> diff --git a/src/wifi-menu b/src/wifi-menu
> index 42c4c53..928cf5e 100755
> --- a/src/wifi-menu
> +++ b/src/wifi-menu
> @@ -29,34 +29,22 @@ quote_safe() {
> fi
> }
>
> -# Fill PROFILES and ESSIDS with the profile names and essids of the profiles
> -# for interface $1
> +# Fill GENERATED, PROFILES and ESSIDS with the profile names and essids of
> the
Ah, right. I'll add "GENERATED".
> +# profiles for interface $1
> init_profiles() {
> - local i=0 essid profile
> + local i=0 profile
> while IFS= read -r profile; do
> - essid=$(
> - unset Interface ESSID
> - source "$PROFILE_DIR/$profile" > /dev/null
> - if [[ "$Interface" = "$1" && -n "$ESSID" ]]; then
> - printf "%s" "$ESSID"
> - if [[ "$Description" =~ "Automatically generated" ]]; then
> - return 2
> - else
> - return 1
> - fi
> - fi
> - return 0
> - )
> - case $? in
> - 2)
> - GENERATED+=("$profile")
> - ;&
> - 1)
> - PROFILES[i]=$profile
> - ESSIDS[i]=$essid
> - (( ++i ))
> - ;;
> - esac
Okay, I'll add a comment explaining that we do things this way for
sandboxing reasons. We want to source the profile in a subshell to
contain any side-effects.
Thanks for your contribution!
- Jouke