Skip to content

Commit

Permalink
Add version package to later use as configuration package
Browse files Browse the repository at this point in the history
  • Loading branch information
MatteoPologruto committed Nov 18, 2022
1 parent 8a0c558 commit 6d584ad
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 4 deletions.
13 changes: 13 additions & 0 deletions globals/globals.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package globals

import (
"os"
"path/filepath"

"github.com/arduino/arduinoOTA/version"
)

var (
// VersionInfo contains all info injected during build
VersionInfo = version.NewInfo(filepath.Base(os.Args[0]))
)
7 changes: 3 additions & 4 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@ import (
"strconv"
"strings"
"time"
)

// AppVersion is the application version.
const AppVersion = "1.3.0"
"github.com/arduino/arduinoOTA/globals"
)

var compileInfo string

Expand All @@ -45,7 +44,7 @@ func main() {
flag.Parse()

if *version {
fmt.Println(AppVersion + compileInfo)
fmt.Println(globals.VersionInfo.String() + compileInfo)
os.Exit(0)
}

Expand Down
39 changes: 39 additions & 0 deletions version/version.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package version

import "fmt"

var (
defaultVersionString = "0.0.0-git"
versionString = ""
commit = ""
date = ""
)

// Info is a struct that contains information about the application
type Info struct {
Application string `json:"Application"`
VersionString string `json:"VersionString"`
Commit string `json:"Commit"`
Date string `json:"Date"`
}

// NewInfo returns a pointer to an updated Info struct
func NewInfo(application string) *Info {
return &Info{
Application: application,
VersionString: versionString,
Commit: commit,
Date: date,
}
}

func (i *Info) String() string {
return fmt.Sprintf("%[1]s Version: %[2]s Commit: %[3]s Date: %[4]s", i.Application, i.VersionString, i.Commit, i.Date)
}

//nolint:gochecknoinits
func init() {
if versionString == "" {
versionString = defaultVersionString
}
}

0 comments on commit 6d584ad

Please # to comment.