Skip to content

Commit af9868f

Browse files
committed
basic versioning
1 parent 30cf829 commit af9868f

File tree

3 files changed

+62
-2
lines changed

3 files changed

+62
-2
lines changed

.goreleaser.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@ builds:
99
- -pgo=auto
1010
env:
1111
- CGO_ENABLED=0
12-
ldflags: |
13-
-s -w -extldflags '-static'
12+
ldflags:
13+
- -s -w -extldflags '-static'
14+
- -X main.Version={{.Version}}
15+
- -X main.Commit={{.Commit}}
16+
- -X main.Date={{.Date}}
17+
- -X main.Timestamp={{.Timestamp}}
1418
goos:
1519
- linux
1620
- darwin

cmd/betteralign/main.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
package main
88

99
import (
10+
"fmt"
11+
"os"
12+
1013
"github.com/KimMachineGun/automemlimit/memlimit"
1114
"github.com/dkorunic/betteralign"
1215
"go.uber.org/automaxprocs/maxprocs"
@@ -29,5 +32,15 @@ func main() {
2932
undo, _ := maxprocs.Set()
3033
defer undo()
3134

35+
args := os.Args[1:]
36+
37+
// check for version flags
38+
for _, arg := range args {
39+
if arg == "-V" || arg == "--version" {
40+
fmt.Println(getVersionString())
41+
os.Exit(0)
42+
}
43+
}
44+
3245
singlechecker.Main(betteralign.Analyzer)
3346
}

cmd/betteralign/version.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package main
2+
3+
import "fmt"
4+
5+
const (
6+
defaultUnknownInfo = "unknown"
7+
)
8+
9+
var (
10+
Version = "dev"
11+
Commit = defaultUnknownInfo
12+
Date = defaultUnknownInfo
13+
Timestamp = defaultUnknownInfo
14+
)
15+
16+
// getVersionString returns version info like:
17+
// "betteralign version X.Y.X (commit short-SHA) built on YYYY-MM-DD"
18+
func getVersionString() string {
19+
version := fmt.Sprintf("betteralign version %s", Version)
20+
21+
if Commit != defaultUnknownInfo {
22+
shortCommit := Commit
23+
if len(Commit) > 7 {
24+
shortCommit = Commit[:7]
25+
}
26+
version += fmt.Sprintf(" (commit %s)", shortCommit)
27+
}
28+
29+
builtDate := Date
30+
if builtDate == defaultUnknownInfo && Timestamp != defaultUnknownInfo {
31+
builtDate = Timestamp
32+
}
33+
34+
if builtDate != defaultUnknownInfo {
35+
if len(builtDate) >= 10 {
36+
version += fmt.Sprintf(" built on %s", builtDate[:10])
37+
} else {
38+
version += fmt.Sprintf(" built on %s", builtDate)
39+
}
40+
}
41+
42+
return version
43+
}

0 commit comments

Comments
 (0)