Skip to content
This repository has been archived by the owner on May 11, 2022. It is now read-only.

Commit

Permalink
sync and up tools
Browse files Browse the repository at this point in the history
  • Loading branch information
kamilsk committed Jan 25, 2020
1 parent 7fb0a3d commit 84a8251
Show file tree
Hide file tree
Showing 61 changed files with 1,852 additions and 701 deletions.
1 change: 0 additions & 1 deletion .travis.yml
Expand Up @@ -9,7 +9,6 @@ cache:
env:
global:
- CODECLIMATE=https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
- GOFLAGS=-mod=vendor

go:
- master
Expand Down
62 changes: 35 additions & 27 deletions Makefile
Expand Up @@ -4,15 +4,14 @@

SHELL = /bin/bash -euo pipefail

GO = GOPRIVATE=$(GOPRIVATE) GOFLAGS=$(GOFLAGS) go
GO111MODULE = on
GOFLAGS = -mod=vendor
GOPRIVATE = go.octolab.net
GOPROXY = direct
LOCAL = $(MODULE)
MODULE = $(shell $(GO) list -m)
PACKAGES = $(shell $(GO) list ./... 2> /dev/null)
PATHS = $(shell $(GO) list ./... 2> /dev/null | sed -e "s|$(MODULE)/\{0,1\}||g")
MODULE = `go list -m`
PACKAGES = `go list ./... 2> /dev/null`
PATHS = $(shell echo $(PACKAGES) | sed -e "s|$(MODULE)/\{0,1\}||g")
TIMEOUT = 1s

ifeq (, $(PACKAGES))
Expand All @@ -23,12 +22,17 @@ ifeq (, $(PATHS))
PATHS = .
endif

export GO111MODULE := $(GO111MODULE)
export GOFLAGS := $(GOFLAGS)
export GOPRIVATE := $(GOPRIVATE)
export GOPROXY := $(GOPROXY)

.PHONY: go-env
go-env:
@echo "GO111MODULE: $(shell $(GO) env GO111MODULE)"
@echo "GOFLAGS: $(strip $(shell $(GO) env GOFLAGS))"
@echo "GOPRIVATE: $(strip $(shell $(GO) env GOPRIVATE))"
@echo "GOPROXY: $(strip $(shell $(GO) env GOPROXY))"
@echo "GO111MODULE: `go env GO111MODULE`"
@echo "GOFLAGS: $(strip `go env GOFLAGS`)"
@echo "GOPRIVATE: $(strip `go env GOPRIVATE`)"
@echo "GOPROXY: $(strip `go env GOPROXY`)"
@echo "LOCAL: $(LOCAL)"
@echo "MODULE: $(MODULE)"
@echo "PACKAGES: $(PACKAGES)"
Expand All @@ -37,51 +41,55 @@ go-env:

.PHONY: deps
deps:
@$(GO) mod tidy
@if [[ "$(shell $(GO) env GOFLAGS)" =~ -mod=vendor ]]; then $(GO) mod vendor; fi
@go mod tidy
@if [[ "`go env GOFLAGS`" =~ -mod=vendor ]]; then go mod vendor; fi

.PHONY: deps-clean
deps-clean:
@$(GO) clean -modcache
@go clean -modcache

.PHONY: update
update: selector = '.Require[] | select(.Indirect != true) | .Path'
update:
@if command -v egg > /dev/null; then \
packages="$(shell egg deps list)"; \
$(GO) get -mod= -u $$packages; \
packages="`egg deps list`"; \
go get -mod= -u $$packages; \
elif command -v jq > /dev/null; then \
packages="$(shell $(GO) mod edit -json | jq -r $(selector))"; \
$(GO) get -mod= -u $$packages; \
packages="`go mod edit -json | jq -r $(selector)`"; \
go get -mod= -u $$packages; \
else \
packages="$(shell cat go.mod | grep -v '// indirect' | grep '\t' | awk '{print $$1}')"; \
$(GO) get -mod= -u $$packages; \
go get -mod= -u $$packages; \
fi

BINARY = $(BINPATH)/$(shell basename $(MODULE))
BINARY = $(BINPATH)/$(shell basename $(MAIN))
BINPATH = $(PWD)/bin
COMMIT = $(shell git rev-parse --verify HEAD)
DATE = $(shell date +%Y-%m-%dT%T%Z)
LDFLAGS = -ldflags "-s -w -X main.commit=$(COMMIT) -X main.date=$(DATE)"
MAIN = $(MODULE)

export PATH := $(BINPATH):$(PATH)
export GOBIN := $(BINPATH)
export PATH := $(BINPATH):$(PATH)

.PHONY: build-env
build-env:
@echo "BINARY: $(BINARY)"
@echo "BINPATH: $(BINPATH)"
@echo "COMMIT: $(COMMIT)"
@echo "DATE: $(DATE)"
@echo "GOBIN: `go env GOBIN`"
@echo "LDFLAGS: $(LDFLAGS)"
@echo "MAIN: $(MAIN)"
@echo "PATH: $$PATH"

.PHONY: build
build: MAIN = .
build:
@$(GO) build -o $(BINARY) $(LDFLAGS) $(MAIN)
@go build -o $(BINARY) $(LDFLAGS) $(MAIN)

.PHONY: build-clean
build-clean:
@$(GO) clean -cache
@go clean -cache

.PHONY: install
install: build
Expand All @@ -92,31 +100,31 @@ install-clean:

.PHONY: test
test:
@$(GO) test -race -timeout $(TIMEOUT) $(PACKAGES)
@go test -race -timeout $(TIMEOUT) $(PACKAGES)

.PHONY: test-clean
test-clean:
@$(GO) clean -testcache
@go clean -testcache

.PHONY: test-with-coverage
test-with-coverage:
@$(GO) test -cover -timeout $(TIMEOUT) $(PACKAGES) | column -t | sort -r
@go test -cover -timeout $(TIMEOUT) $(PACKAGES) | column -t | sort -r

.PHONY: test-with-coverage-profile
test-with-coverage-profile:
@$(GO) test -cover -covermode count -coverprofile c.out -timeout $(TIMEOUT) $(PACKAGES)
@go test -cover -covermode count -coverprofile c.out -timeout $(TIMEOUT) $(PACKAGES)

.PHONY: dist
dist:
@godownloader .goreleaser.yml > .github/install.sh
@godownloader .goreleaser.yml > bin/install

.PHONY: format
format:
@goimports -local $(LOCAL) -ungroup -w $(PATHS)

.PHONY: generate
generate:
@$(GO) generate $(PACKAGES)
@go generate $(PACKAGES)


.PHONY: clean
Expand Down
106 changes: 74 additions & 32 deletions bin/activate
@@ -1,31 +1,67 @@
#!/usr/bin/env bash

deactivate () {
if [[ -n "${_OLD_PATH:-}" ]]; then
export PATH="${_OLD_PATH:-}"
unset _BINPATH
unset _ROOT
if [[ -v _OLD_GO111MODULE ]]; then
export GO111MODULE="${_OLD_GO111MODULE}"
if [[ -z "${_OLD_GO111MODULE}" ]]; then
unset GO111MODULE
fi
unset _OLD_GO111MODULE
fi
if [[ -v _OLD_GOBIN ]]; then
export GOBIN="${_OLD_GOBIN}"
if [[ -z "${_OLD_GOBIN}" ]]; then
unset GOBIN
fi
unset _OLD_GOBIN
fi
if [[ -v _OLD_GOFLAGS ]]; then
export GOFLAGS="${_OLD_GOFLAGS}"
if [[ -z "${_OLD_GOFLAGS}" ]]; then
unset GOFLAGS
fi
unset _OLD_GOFLAGS
fi
if [[ -v _OLD_GOPRIVATE ]]; then
export GOPRIVATE="${_OLD_GOPRIVATE}"
if [[ -z "${_OLD_GOPRIVATE}" ]]; then
unset GOPRIVATE
fi
unset _OLD_GOPRIVATE
fi
if [[ -v _OLD_GOPROXY ]]; then
export GOPROXY="${_OLD_GOPROXY}"
if [[ -z "${_OLD_GOPROXY}" ]]; then
unset GOPROXY
fi
unset _OLD_GOPROXY
fi
if [[ -v _OLD_PATH ]]; then
export PATH="${_OLD_PATH}"
unset _OLD_PATH
fi
if [[ -n "${_OLD_PS1:-}" ]]; then
export PS1="${_OLD_PS1}"
unset _OLD_PS1
fi

if [[ -n "${BASH:-}" || -n "${ZSH_VERSION:-}" ]]; then
hash -r
fi

if [[ -n "${_OLD_PS1:-}" ]]; then
PS1="${_OLD_PS1:-}"
export PS1
unset _OLD_PS1
fi

if [[ ! "${1:-}" = "nondestructive" ]]; then
unset -f deactivate
unset -f realpath
unset -f get
unset -f up
unset -f realpath
unset -f tools
unset -f up
fi
}

unset BINPATH
unset ROOT
get () {
go get -mod= $@
}

realpath () {
Expand All @@ -36,37 +72,43 @@ realpath () {
echo "$(cd `dirname ${1}` && pwd)/${1}"
}

get () {
go get -mod= $@
tools () {
(cd "${_ROOT%/}"/tools && make $@)
}

up () {
get -u $@
go mod tidy && go mod vendor
}

tools () {
(cd "${ROOT%/}"/tools && make $@)
go mod tidy
if [[ "`go env GOFLAGS`" =~ -mod=vendor ]]; then go mod vendor; fi
}

deactivate nondestructive

_BINPATH=$(realpath $(dirname "${BASH_SOURCE[0]:-$0}"))
_ROOT=$(dirname "${_BINPATH}")/

_OLD_GO111MODULE="${GO111MODULE}"
_OLD_GOBIN="${GOBIN}"
_OLD_GOFLAGS="${GOFLAGS}"
_OLD_GOPRIVATE="${GOPRIVATE}"
_OLD_GOPROXY="${GOPROXY}"
_OLD_PATH="${PATH}"
export BINPATH=$(realpath $(dirname "${BASH_SOURCE[0]:-$0}"))
export PATH="${BINPATH}:${PATH}"
export ROOT=$(dirname "${BINPATH}")/
_OLD_PS1="${PS1:-}"

if [[ -z "${BINPATH_DISABLE_PROMPT:-}" ]]; then
_OLD_PS1="${PS1:-}"
if [[ "x(activated) " != x ]]; then
PS1="(activated) ${PS1:-}"
elif [[ "`basename \"$BINPATH\"`" = "__" ]]; then
PS1="[`basename \`dirname \"$BINPATH\"\``] $PS1"
else
PS1="(`basename \"$BINPATH\"`)$PS1"
fi
export PS1
export GO111MODULE=on
export GOBIN="${_BINPATH}"
export GOFLAGS=-mod=vendor
export GOPRIVATE=go.octolab.net
export GOPROXY=direct
export PATH="${_BINPATH}:${PATH}"
if [[ "x(activated) " != x ]]; then
PS1="(activated) ${PS1:-}"
elif [[ "`basename \"${_BINPATH}\"`" = "__" ]]; then
PS1="[`basename \`dirname \"${_BINPATH}\"\``] $PS1"
else
PS1="(`basename \"${_BINPATH}\"`)$PS1"
fi
export PS1

if [[ -n "${BASH:-}" || -n "${ZSH_VERSION:-}" ]]; then
hash -r
Expand Down

0 comments on commit 84a8251

Please sign in to comment.