From c3e6bf0987513438271800b87cf8b0c48ed12736 Mon Sep 17 00:00:00 2001 From: teizz Date: Sun, 24 Oct 2021 13:58:11 +0200 Subject: [PATCH] include an example cmd --- build.sh | 9 --------- cmd/Dockerfile | 16 ++++++++++++++++ cmd/VERSION | 1 + cmd/build.sh | 3 +++ cmd/go.mod | 7 +++++++ cmd/go.sum | 2 ++ cmd/main.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 79 insertions(+), 9 deletions(-) delete mode 100755 build.sh create mode 100644 cmd/Dockerfile create mode 100644 cmd/VERSION create mode 100755 cmd/build.sh create mode 100644 cmd/go.mod create mode 100644 cmd/go.sum create mode 100644 cmd/main.go diff --git a/build.sh b/build.sh deleted file mode 100755 index edc5c31..0000000 --- a/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -export CGO_ENABLED=0 -export GO111MODULE=off - -echo go build -trimpath \ - -ldflags="all=-s -w -buildid= -X main.version=$(cat VERSION) -X main.buildtime=$(date +%FT%T%z)" \ - -o pathway \ - src/*.go diff --git a/cmd/Dockerfile b/cmd/Dockerfile new file mode 100644 index 0000000..02f568d --- /dev/null +++ b/cmd/Dockerfile @@ -0,0 +1,16 @@ +FROM golang:alpine AS builder +RUN apk --no-cache --no-progress add upx +WORKDIR /go/build + +COPY . . +RUN echo Building && \ + go get -u && \ + env CGO_ENABLED=0 go build -trimpath -ldflags="all=-s -w -buildid= -X main.version=v$(cat VERSION) -X main.buildtime=$(date +%FT%T%z)" -o pathway && \ + echo Compressing && \ + upx pathway > /dev/null + +FROM scratch +COPY --from=builder /go/build/pathway /pathway + +EXPOSE 8080 +CMD ["/pathway"] diff --git a/cmd/VERSION b/cmd/VERSION new file mode 100644 index 0000000..9f55b2c --- /dev/null +++ b/cmd/VERSION @@ -0,0 +1 @@ +3.0 diff --git a/cmd/build.sh b/cmd/build.sh new file mode 100755 index 0000000..74c6b74 --- /dev/null +++ b/cmd/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +export CGO_ENABLED=0 +go build -trimpath -ldflags="all=-s -w -buildid= -X main.version=v$(cat VERSION) -X main.buildtime=$(date +%FT%T%z)" -o pathway diff --git a/cmd/go.mod b/cmd/go.mod new file mode 100644 index 0000000..29eae9f --- /dev/null +++ b/cmd/go.mod @@ -0,0 +1,7 @@ +module main + +go 1.16 + +require ( + git.nxdomain.nl/mattijs/pathway v0.1.2 +) diff --git a/cmd/go.sum b/cmd/go.sum new file mode 100644 index 0000000..1e0aae1 --- /dev/null +++ b/cmd/go.sum @@ -0,0 +1,2 @@ +git.nxdomain.nl/mattijs/pathway v0.1.2 h1:EXt0JaDlS4gPvQgGcyslYaLgRC2/AZPC+/8VDba3+bY= +git.nxdomain.nl/mattijs/pathway v0.1.2/go.mod h1:3FllmtSFlVdPPdXmtL+N7V0qdaTtYB/zLyM8uQr+50o= diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..ea60a57 --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,50 @@ +package main + +import ( + "log" + "net/http" + + "git.nxdomain.nl/mattijs/pathway" +) + +var ( + // variables to set during build-time + debugging = "" + version = "0.0-undefined" + buildtime = "0000-00-00T00:00:00+0000" +) + +func okHandler(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + w.Write([]byte("ok")) +} + +func emptyHandler(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) +} + +func main() { + info("pathway version:%s buildtime:%s", version, buildtime) + + paths := pathway.New() + + http.HandleFunc("/health", okHandler) + http.HandleFunc("/favicon.ico", emptyHandler) + http.HandleFunc("/robots.txt", emptyHandler) + http.HandleFunc("/", paths.ServeHTTP) + + err := http.ListenAndServe(":8080", nil) + if err != nil { + info("%s", err.Error()) + } +} + +func info(msg string, args ...interface{}) { + log.Printf("INFO | "+msg, args...) +} + +func debug(msg string, args ...interface{}) { + if len(debugging) > 0 { + log.Printf("DEBUG | "+msg, args...) + } +}