From 49783b7965e3d451b8c4a7a59dc37e648ecbc1fb Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 12 Nov 2020 18:57:48 +0200 Subject: [PATCH] (macOS) Possibility to build without WiFi functionality The output binary will not have additional dependencies from wifi-related libraries --- .vscode/launch.json | 1 + References/macOS/scripts/build-all.sh | 24 +++++++++++++++++---- wifiNotifier/wifiNotifier_darwin.go | 2 +- wifiNotifier/wifiNotifier_darwin_nowifi.go | 25 ++++++++++++++++++++++ 4 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 wifiNotifier/wifiNotifier_darwin_nowifi.go diff --git a/.vscode/launch.json b/.vscode/launch.json index 897dbeb..abaf853 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,6 +14,7 @@ "args": ["-logging"], //"buildFlags": "-tags debug" "buildFlags": "" + //"buildFlags": "-tags nowifi" } ] } diff --git a/References/macOS/scripts/build-all.sh b/References/macOS/scripts/build-all.sh index f6f198a..4834e48 100755 --- a/References/macOS/scripts/build-all.sh +++ b/References/macOS/scripts/build-all.sh @@ -93,13 +93,29 @@ echo "Commit : $COMMIT" cd ../../../ +BUILDTAGS_DEBUG="" +BUILDTAGS_NOWIFI="" + if [[ "$@" == *"-debug"* ]] then - echo "Compiling in DEBUG mode" - go build -tags debug -o "IVPN Agent" -o "IVPN Agent" -ldflags "-X github.com/ivpn/desktop-app-daemon/version._version=$VERSION -X github.com/ivpn/desktop-app-daemon/version._commit=$COMMIT -X github.com/ivpn/desktop-app-daemon/version._time=$DATE" -else - go build -o "IVPN Agent" -ldflags "-X github.com/ivpn/desktop-app-daemon/version._version=$VERSION -X github.com/ivpn/desktop-app-daemon/version._commit=$COMMIT -X github.com/ivpn/desktop-app-daemon/version._time=$DATE" + BUILDTAGS_DEBUG="-tags debug" fi +echo "" +echo "Enable WIFI support?" +echo "(this will lead to some additional library dependencies for the final binary)" +read -p "[y\n]? (n - default): " yn +case $yn in + [Yy]* ) + ;; + [Nn]* ) + BUILDTAGS_NOWIFI="-tags nowifi" + ;; + * ) + BUILDTAGS_NOWIFI="-tags nowifi" + ;; +esac + +go build $BUILDTAGS_NOWIFI $BUILDTAGS_DEBUG -o "IVPN Agent" -ldflags "-X github.com/ivpn/desktop-app-daemon/version._version=$VERSION -X github.com/ivpn/desktop-app-daemon/version._commit=$COMMIT -X github.com/ivpn/desktop-app-daemon/version._time=$DATE" echo "Cpmpiled daemon binary: '$(pwd)/IVPN Agent'" diff --git a/wifiNotifier/wifiNotifier_darwin.go b/wifiNotifier/wifiNotifier_darwin.go index 2995bc5..b83d0c1 100644 --- a/wifiNotifier/wifiNotifier_darwin.go +++ b/wifiNotifier/wifiNotifier_darwin.go @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!nowifi package wifiNotifier diff --git a/wifiNotifier/wifiNotifier_darwin_nowifi.go b/wifiNotifier/wifiNotifier_darwin_nowifi.go new file mode 100644 index 0000000..985b80c --- /dev/null +++ b/wifiNotifier/wifiNotifier_darwin_nowifi.go @@ -0,0 +1,25 @@ +// +build darwin,nowifi + +package wifiNotifier + +import "github.com/ivpn/desktop-app-daemon/logger" + +// GetAvailableSSIDs returns the list of the names of available Wi-Fi networks +func GetAvailableSSIDs() []string { + return nil +} + +// GetCurrentSSID returns current WiFi SSID +func GetCurrentSSID() string { + return "" +} + +// GetCurrentNetworkSecurity returns current security mode +func GetCurrentNetworkSecurity() WiFiSecurity { + return WiFiSecurityUnknown +} + +// SetWifiNotifier initializes a handler method 'OnWifiChanged' +func SetWifiNotifier(cb func(string)) { + logger.Debug("WiFi functionality disabled in this build") +}