Add windows support
bwplotka opened this issue · 4 comments
bwplotka commented
AC:
- Add Github Action windows runner to test against windows
- Decide how Makefile / variables.env should work on Windows platform, and adjust for windows (e.g. should we support PowerShell, any other requirements?)
codefromthecrypt commented
minimally we need to quote more. ex this:
--- a/.bingo/Variables.mk
+++ b/.bingo/Variables.mk
@@ -21,23 +21,23 @@ GOIMPORTS := $(GOBIN)/goimports-v0.1.2
$(GOIMPORTS): $(BINGO_DIR)/goimports.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/goimports-v0.1.2"
- @cd $(BINGO_DIR) && $(GO) build -mod=mod -modfile=goimports.mod -o=$(GOBIN)/goimports-v0.1.2 "golang.org/x/tools/cmd/goimports"
+ @cd "$(BINGO_DIR)" && "$(GO)" build -mod=mod -modfile=goimports.mod -o="$(GOBIN)/goimports-v0.1.2" "golang.org/x/tools/cmd/goimports"
codefromthecrypt commented
I think spaces just won't work. there are a bunch of reasons why. windows would only work if you can use non-spaces for both go and the checked out project
codefromthecrypt commented
one main issue is that go env GOPATH
comes out like `c:...'
The result is this is ambiguous and fails
GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin
codefromthecrypt commented
This seems to work around things well enough in git bash assuming you have go installed in a non-spaced directory such as you'd get using https://github.com/travis-ci/gimme
--- a/.bingo/Variables.mk
+++ b/.bingo/Variables.mk
@@ -2,7 +2,9 @@
# All tools are designed to be build inside $GOBIN.
BINGO_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
GOPATH ?= $(shell go env GOPATH)
-GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin
+# This handles translation for Windows, but only in cygwin or similar environments
+PATHSEP := $(if $(COMSPEC),;,:)
+GOBIN ?= $(firstword $(subst $(PATHSEP), ,$(subst \,/,${GOPATH})))/bin
GO ?= $(shell which go)