Skip to content

Commit 6d584ad

Browse files
Add version package to later use as configuration package
1 parent 8a0c558 commit 6d584ad

File tree

3 files changed

+55
-4
lines changed

3 files changed

+55
-4
lines changed

Diff for: globals/globals.go

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package globals
2+
3+
import (
4+
"os"
5+
"path/filepath"
6+
7+
"github.com/arduino/arduinoOTA/version"
8+
)
9+
10+
var (
11+
// VersionInfo contains all info injected during build
12+
VersionInfo = version.NewInfo(filepath.Base(os.Args[0]))
13+
)

Diff for: main.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ import (
1515
"strconv"
1616
"strings"
1717
"time"
18-
)
1918

20-
// AppVersion is the application version.
21-
const AppVersion = "1.3.0"
19+
"github.com/arduino/arduinoOTA/globals"
20+
)
2221

2322
var compileInfo string
2423

@@ -45,7 +44,7 @@ func main() {
4544
flag.Parse()
4645

4746
if *version {
48-
fmt.Println(AppVersion + compileInfo)
47+
fmt.Println(globals.VersionInfo.String() + compileInfo)
4948
os.Exit(0)
5049
}
5150

Diff for: version/version.go

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package version
2+
3+
import "fmt"
4+
5+
var (
6+
defaultVersionString = "0.0.0-git"
7+
versionString = ""
8+
commit = ""
9+
date = ""
10+
)
11+
12+
// Info is a struct that contains information about the application
13+
type Info struct {
14+
Application string `json:"Application"`
15+
VersionString string `json:"VersionString"`
16+
Commit string `json:"Commit"`
17+
Date string `json:"Date"`
18+
}
19+
20+
// NewInfo returns a pointer to an updated Info struct
21+
func NewInfo(application string) *Info {
22+
return &Info{
23+
Application: application,
24+
VersionString: versionString,
25+
Commit: commit,
26+
Date: date,
27+
}
28+
}
29+
30+
func (i *Info) String() string {
31+
return fmt.Sprintf("%[1]s Version: %[2]s Commit: %[3]s Date: %[4]s", i.Application, i.VersionString, i.Commit, i.Date)
32+
}
33+
34+
//nolint:gochecknoinits
35+
func init() {
36+
if versionString == "" {
37+
versionString = defaultVersionString
38+
}
39+
}

0 commit comments

Comments
 (0)