feat: project scaffold, version command, build
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
BINARY := emcli
|
||||||
|
LDFLAGS := -s -w
|
||||||
|
|
||||||
|
.PHONY: build test vet
|
||||||
|
build:
|
||||||
|
CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o $(BINARY) ./cmd/emcli
|
||||||
|
|
||||||
|
test:
|
||||||
|
go test ./...
|
||||||
|
|
||||||
|
vet:
|
||||||
|
go vet ./...
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"git.dcglab.co.uk/steve/emcli/internal/version"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
if len(os.Args) >= 2 && os.Args[1] == "version" {
|
||||||
|
fmt.Println(version.String)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Fprintln(os.Stderr, "emcli: no command given")
|
||||||
|
os.Exit(2)
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
// Package version holds the build version string.
|
||||||
|
package version
|
||||||
|
|
||||||
|
// String is the emcli version. Overridden at release via -ldflags.
|
||||||
|
var String = "v0.1.0-dev"
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package version
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestStringIsSemver(t *testing.T) {
|
||||||
|
if String == "" {
|
||||||
|
t.Fatal("version.String must not be empty")
|
||||||
|
}
|
||||||
|
if String[0] != 'v' {
|
||||||
|
t.Fatalf("version %q must start with 'v'", String)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user