.PHONY:
all: coverage mac linux
+DIRTY=$(shell [[ -z `git status --untracked-files=no --porcelain` ]] || echo "-dirty")
+GITHASH=$(shell git log --pretty='%H' -1)
+
+LDFLAG=-ldflags "-X 'main.versionGit=$(GITHASH)$(DIRTY)'"
+
coverage:
go test -coverprofile ./cover.out ./...
go tool cover -html=cover.out -o cover.html
mac:
- GOOS=darwin GOARCH=amd64 go build -o mailpopbox-mac-amd64
+ GOOS=darwin GOARCH=amd64 go build -o mailpopbox-mac-amd64 $(LDFLAG)
linux:
- GOOS=linux GOARCH=amd64 go build -o mailpopbox-linux-amd64
+ GOOS=linux GOARCH=amd64 go build -o mailpopbox-linux-amd64 $(LDFLAG)
"go.uber.org/zap"
)
+var (
+ versionGit = "development"
+ versionNumber = "2.0.0"
+ versionString = "mailpopbox " + versionNumber + " (" + versionGit + ")\n"
+)
+
func main() {
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, "Usage: %s config.json\n", os.Args[0])
os.Exit(1)
}
+ if os.Args[1] == "version" {
+ fmt.Print(versionString)
+ os.Exit(0)
+ }
+
configFile, err := os.Open(os.Args[1])
if err != nil {
fmt.Fprintf(os.Stderr, "config file: %s\n", err)