From 7147c40723702f36dc5121c17bcc74456e452eff Mon Sep 17 00:00:00 2001 From: Alexander Baryshnikov Date: Mon, 13 Apr 2020 14:42:37 +0800 Subject: [PATCH] fix darwin configuration --- Makefile | 20 ++++++++++++++++--- network/network.go | 4 ++++ network/network_darwin.go | 14 +++++++++++++ .../{network_posix.go => network_linux.go} | 6 ++++-- network/network_windows.go | 4 ++++ utils/cmd.go | 2 +- utils/cmd_darwin.go | 12 +++++++++++ 7 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 network/network_darwin.go rename network/{network_posix.go => network_linux.go} (66%) create mode 100644 utils/cmd_darwin.go diff --git a/Makefile b/Makefile index 969dbe5..3f07941 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ install: backend tools: - GO111MODULE=off go get -u -v github.com/go-bindata/go-bindata/... - GO111MODULE=off go get -u -v github.com/reddec/struct-view/cmd/events-gen - GO111MODULE=off go get -u -v github.com/reddec/jsonrpc2/cmd/... + GO111MODULE=off go get -v github.com/go-bindata/go-bindata/... + GO111MODULE=off go get -v github.com/reddec/struct-view/cmd/events-gen + GO111MODULE=off go get -v github.com/reddec/jsonrpc2/cmd/... ui: cd web/ui && npm i && npm run build @@ -16,4 +16,18 @@ regen: tools ui backend: regen go build -o tinc-web-boot -v ./cmd/tinc-web-boot/main.go +linux: + mkdir -p build + GOOS=linux go build -o build/tinc-web-boot -v ./cmd/tinc-web-boot/main.go + +darwin: + mkdir -p build + GOOS=darwin go build -o build/tinc-web-boot -v ./cmd/tinc-web-boot/main.go + +windows: + mkdir -p build + GOOS=windows go build -o build/tinc-web-boot -v ./cmd/tinc-web-boot/main.go + +checkplatform: linux windows darwin + .PHONY: install \ No newline at end of file diff --git a/network/network.go b/network/network.go index 76fe644..a60d25c 100644 --- a/network/network.go +++ b/network/network.go @@ -262,6 +262,10 @@ func (network *Network) defineConfiguration() error { AutoStart: false, } + if err := network.beforeConfigure(config); err != nil { + return err + } + if err := network.Update(config); err != nil { return err } diff --git a/network/network_darwin.go b/network/network_darwin.go new file mode 100644 index 0000000..8905b23 --- /dev/null +++ b/network/network_darwin.go @@ -0,0 +1,14 @@ +package network + +import ( + "context" +) + +func (network *Network) postConfigure(ctx context.Context, config *Config, tincBin string) error { + return nil +} + +func (network *Network) beforeConfigure(config *Config) error { + config.Interface = "" + return nil +} diff --git a/network/network_posix.go b/network/network_linux.go similarity index 66% rename from network/network_posix.go rename to network/network_linux.go index b935025..b1d9a51 100644 --- a/network/network_posix.go +++ b/network/network_linux.go @@ -1,5 +1,3 @@ -// +build darwin linux - package network import ( @@ -9,3 +7,7 @@ import ( func (network *Network) postConfigure(ctx context.Context, config *Config, tincBin string) error { return nil } + +func (network *Network) beforeConfigure(config *Config) error { + return nil +} diff --git a/network/network_windows.go b/network/network_windows.go index d40d6eb..60df7ff 100644 --- a/network/network_windows.go +++ b/network/network_windows.go @@ -88,3 +88,7 @@ func (network *Network) findTapInstall(tincBin string) (string, error) { } return res, err } + +func (network *Network) beforeConfigure(config *Config) error { + return nil +} diff --git a/utils/cmd.go b/utils/cmd.go index e3d4f32..e3b6f83 100644 --- a/utils/cmd.go +++ b/utils/cmd.go @@ -1,6 +1,6 @@ // -// +build !linux +// +build !linux,!darwin package utils diff --git a/utils/cmd_darwin.go b/utils/cmd_darwin.go new file mode 100644 index 0000000..c788834 --- /dev/null +++ b/utils/cmd_darwin.go @@ -0,0 +1,12 @@ +package utils + +import ( + "os/exec" + "syscall" +) + +func SetCmdAttrs(cmd *exec.Cmd) { + cmd.SysProcAttr = &syscall.SysProcAttr{ + Setpgid: true, + } +}