Rewrite the Makefile to create release archives.
authorRobert Sesek <rsesek@bluestatic.org>
Sat, 8 Aug 2020 17:21:23 +0000 (13:21 -0400)
committerRobert Sesek <rsesek@bluestatic.org>
Sat, 8 Aug 2020 17:23:47 +0000 (13:23 -0400)
.gitignore
Makefile
mailpopbox.go
version.go [new file with mode: 0644]

index 5000e08088c1c311ed1e5a06ae8e7966371cf34a..d51416913e94f16a7b4d88716e3b8d77886e39fa 100644 (file)
@@ -2,5 +2,5 @@ config.json
 cover.html
 cover.out
 mailpopbox
-mailpopbox-linux-amd64
-mailpopbox-mac-amd64
+mailpopbox-*-linux-amd64.zip
+mailpopbox-*-mac-amd64.zip
index 65608a721f3d7eefc75acdd4fdc82f7e33f87d9f..bb328229677dce9ff402c851f91a70006bea293d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,32 @@
 .PHONY:
-all: coverage mac linux
+all: coverage linux mac
 
 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)'"
 
+VERSION=$(shell sed -n -E -e 's/[[:space:]]*versionNumber = "(.*)"/\1/p' version.go)
+PKG_BASE=mailpopbox-$(VERSION)
+
+DOCS_FILES=README.md docs/install.md
+
 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 $(LDFLAG)
+       GOOS=darwin GOARCH=amd64 go build $(LDFLAG)
+       mkdir $(PKG_BASE)
+       cp mailpopbox $(PKG_BASE)
+       cp $(DOCS_FILES) $(PKG_BASE)
+       zip -r $(PKG_BASE)-mac-amd64.zip $(PKG_BASE)
+       rm -rf $(PKG_BASE)
 
 linux:
-       GOOS=linux GOARCH=amd64 go build -o mailpopbox-linux-amd64 $(LDFLAG)
+       GOOS=linux GOARCH=amd64 go build $(LDFLAG)
+       mkdir $(PKG_BASE)
+       cp mailpopbox $(PKG_BASE)
+       cp deployment/mailpopbox.service $(PKG_BASE)
+       cp $(DOCS_FILES) $(PKG_BASE)
+       zip -r $(PKG_BASE)-linux-amd64.zip $(PKG_BASE)
+       rm -rf $(PKG_BASE)
index af2c3690d5b0c4f88d2fabb2f94ce435160466ab..62bbf71a34a03e4fb07cfa2a6d868f0e6f750b98 100644 (file)
@@ -14,12 +14,6 @@ import (
        "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])
diff --git a/version.go b/version.go
new file mode 100644 (file)
index 0000000..808e277
--- /dev/null
@@ -0,0 +1,13 @@
+// mailpopbox
+// Copyright 2020 Blue Static <https://www.bluestatic.org>
+// This program is free software licensed under the GNU General Public License,
+// version 3.0. The full text of the license can be found in LICENSE.txt.
+// SPDX-License-Identifier: GPL-3.0-only
+
+package main
+
+var (
+       versionGit    = "development"
+       versionNumber = "2.0.0"
+       versionString = "mailpopbox " + versionNumber + " (" + versionGit + ")\n"
+)