From bc70b4386888dd43bc99ab7c401763ce46a177e7 Mon Sep 17 00:00:00 2001 From: Cory Bennett Date: Tue, 22 Dec 2015 17:56:53 -0800 Subject: [PATCH] make "jira" golang package, move code from jira/cli to root, move jira/main.go to main/main.go --- Makefile | 39 ++++++++++++++++++--------- jira/cli/cli.go => cli.go | 7 +++-- jira/cli/commands.go => commands.go | 2 +- {jira => main}/main.go | 13 +++++---- jira/cli/templates.go => templates.go | 2 +- jira/cli/util.go => util.go | 2 +- 6 files changed, 41 insertions(+), 24 deletions(-) rename jira/cli/cli.go => cli.go (99%) rename jira/cli/commands.go => commands.go (99%) rename {jira => main}/main.go (97%) rename jira/cli/templates.go => templates.go (99%) rename jira/cli/util.go => util.go (99%) diff --git a/Makefile b/Makefile index 698dec2..b0bab7c 100644 --- a/Makefile +++ b/Makefile @@ -14,20 +14,32 @@ PLATFORMS= \ $(NULL) DIST=$(shell pwd)/dist + export GOPATH=$(shell pwd) -GOBIN ?= $(shell pwd)/bin + +GOBIN ?= $(shell pwd) NAME=jira +BIN ?= $(GOBIN)/$(NAME) + CURVER ?= $(shell [ -d .git ] && git describe --abbrev=0 --tags || grep ^\#\# CHANGELOG.md | awk '{print $$2; exit}') -LDFLAGS:=-X main.buildVersion=$(CURVER) +LDFLAGS:=-X jira.VERSION=$(patsubst v%,%,$(CURVER)) -w + +# use make DEBUG=1 and you can get a debuggable golang binary +# see https://github.com/mailgun/godebug +ifneq ($(DEBUG),) + GOBUILD=go get -v github.com/mailgun/godebug && ./bin/godebug build +else + GOBUILD=go build -v -ldflags "$(LDFLAGS) -s" +endif build: src/github.com/Netflix-Skunkworks/go-jira - go build -ldflags "$(LDFLAGS)" -o $(GOBIN)/$(NAME) jira/main.go + $(GOBUILD) -o $(BIN) main/main.go src/%: mkdir -p $(@D) test -L $@ || ln -sf ../../.. $@ - go get -v $*/jira + go get -v $* $*/main cross-setup: for p in $(PLATFORMS); do \ @@ -40,33 +52,36 @@ all: mkdir -p $(DIST); \ for p in $(PLATFORMS); do \ echo "Building for $$p"; \ - GOOS=$${p/-*/} GOARCH=$${p/*-/} go build -v -ldflags "$(LDFLAGS) -s" -o $(DIST)/$(NAME)-$$p jira/main.go ; \ + ${MAKE} build GOOS=$${p/-*/} GOARCH=$${p/*-/} BIN=$(DIST)/$(NAME)-$$p; \ done fmt: - gofmt -s -w jira + gofmt -s -w main/*.go *.go install: - export GOBIN=~/bin && ${MAKE} build + ${MAKE} GOBIN=~/bin build NEWVER ?= $(shell echo $(CURVER) | awk -F. '{print $$1"."$$2"."$$3+1}') TODAY := $(shell date +%Y-%m-%d) changes: - @git log --pretty=format:"* %s [%cn] [%h]" --no-merges ^$(CURVER) HEAD jira | grep -v gofmt | grep -v "bump version" + @git log --pretty=format:"* %s [%cn] [%h]" --no-merges ^$(CURVER) HEAD main/*.go *.go | grep -vE 'gofmt|go fmt' -update-changelog: +update-changelog: @echo "# Changelog" > CHANGELOG.md.new; \ echo >> CHANGELOG.md.new; \ echo "## $(NEWVER) - $(TODAY)" >> CHANGELOG.md.new; \ echo >> CHANGELOG.md.new; \ - $(MAKE) changes | \ + $(MAKE) --no-print-directory --silent changes | \ perl -pe 's{\[([a-f0-9]+)\]}{[[$$1](https://github.com/Netflix-Skunkworks/go-jira/commit/$$1)]}g' | \ perl -pe 's{\#(\d+)}{[#$$1](https://github.com/Netflix-Skunkworks/go-jira/issues/$$1)}g' >> CHANGELOG.md.new; \ - tail +2 CHANGELOG.md >> CHANGELOG.md.new; \ + tail -n +2 CHANGELOG.md >> CHANGELOG.md.new; \ mv CHANGELOG.md.new CHANGELOG.md; \ git commit -m "Updated Changelog" CHANGELOG.md; \ git tag $(NEWVER) +version: + @echo $(patsubst v%,%,$(CURVER)) + clean: - rm -rf pkg dist bin src ./toolkit + rm -rf pkg dist bin src ./$(NAME) diff --git a/jira/cli/cli.go b/cli.go similarity index 99% rename from jira/cli/cli.go rename to cli.go index c89dff1..9331ffd 100644 --- a/jira/cli/cli.go +++ b/cli.go @@ -1,4 +1,4 @@ -package cli +package jira import ( "bytes" @@ -18,7 +18,10 @@ import ( "time" ) -var log = logging.MustGetLogger("jira.cli") +var ( + log = logging.MustGetLogger("jira") + VERSION string +) type Cli struct { endpoint *url.URL diff --git a/jira/cli/commands.go b/commands.go similarity index 99% rename from jira/cli/commands.go rename to commands.go index 8fb5ed6..64d25df 100644 --- a/jira/cli/commands.go +++ b/commands.go @@ -1,4 +1,4 @@ -package cli +package jira import ( "bytes" diff --git a/jira/main.go b/main/main.go similarity index 97% rename from jira/main.go rename to main/main.go index 2748c7c..17f6f5c 100644 --- a/jira/main.go +++ b/main/main.go @@ -3,7 +3,7 @@ package main import ( "bytes" "fmt" - "github.com/Netflix-Skunkworks/go-jira/jira/cli" + "github.com/Netflix-Skunkworks/go-jira" "github.com/coryb/optigo" "github.com/op/go-logging" "gopkg.in/coryb/yaml.v2" @@ -16,7 +16,6 @@ import ( var ( log = logging.MustGetLogger("jira") format = "%{color}%{time:2006-01-02T15:04:05.000Z07:00} %{level:-5s} [%{shortfile}]%{color:reset} %{message}" - buildVersion string ) func main() { @@ -172,7 +171,7 @@ Command Options: op := optigo.NewDirectAssignParser(map[string]interface{}{ "h|help": usage, "version": func() { - fmt.Println(fmt.Sprintf("version: %s", buildVersion)) + fmt.Println(fmt.Sprintf("version: %s", jira.VERSION)) os.Exit(0) }, "v|verbose+": func() { @@ -258,7 +257,7 @@ Command Options: os.Exit(1) } - c := cli.New(opts) + c := jira.New(opts) log.Debug("opts: %s", opts) @@ -306,7 +305,7 @@ Command Options: for _, issue := range issues { if err = c.CmdEdit(issue.(map[string]interface{})["key"].(string)); err != nil { switch err.(type) { - case cli.NoChangesFound: + case jira.NoChangesFound: log.Warning("No Changes found: %s", err) err = nil continue @@ -441,9 +440,9 @@ func populateEnv(opts map[string]interface{}) { func loadConfigs(opts map[string]interface{}) { populateEnv(opts) - paths := cli.FindParentPaths(".jira.d/config.yml") + paths := jira.FindParentPaths(".jira.d/config.yml") // prepend - paths = append([]string{"/etc/jira-cli.yml"}, paths...) + paths = append([]string{"/etc/go-jira.yml"}, paths...) // iterate paths in reverse for i := len(paths) - 1; i >= 0; i-- { diff --git a/jira/cli/templates.go b/templates.go similarity index 99% rename from jira/cli/templates.go rename to templates.go index d74abc3..a0cb81e 100644 --- a/jira/cli/templates.go +++ b/templates.go @@ -1,4 +1,4 @@ -package cli +package jira var all_templates = map[string]string{ "debug": default_debug_template, diff --git a/jira/cli/util.go b/util.go similarity index 99% rename from jira/cli/util.go rename to util.go index 4c5e666..fda75f1 100644 --- a/jira/cli/util.go +++ b/util.go @@ -1,4 +1,4 @@ -package cli +package jira import ( "bufio"