@@ -2,14 +2,14 @@ package version
2
2
3
3
import (
4
4
"encoding/json"
5
- "fmt "
5
+ "strings "
6
6
)
7
7
8
8
// Info creates a formattable struct for output
9
9
type Info struct {
10
- Version string
11
- Commit string
12
- Date string
10
+ Version string `json:"Version,omitempty"`
11
+ Commit string `json:"Commit,omitempty"`
12
+ Date string `json:"Date,omitempty"`
13
13
}
14
14
15
15
// New will create a pointer to a new version object
@@ -28,7 +28,29 @@ func (v *Info) ToJSON() string {
28
28
}
29
29
30
30
// ToShortened converts the Info into a JSON String
31
- func (v * Info ) ToShortened () string {
32
- str := fmt .Sprintf ("Version: %v\n Commit: %v\n Date: %v\n " , v .Version , v .Commit , v .Date )
33
- return str
31
+ func (v * Info ) ToShortened () (str string ) {
32
+ var version , commit , date string
33
+ if v .Version != "" {
34
+ version = "Version: " + v .Version
35
+ }
36
+ if v .Commit != "" {
37
+ commit = "Commit: " + v .Commit
38
+ }
39
+ if v .Date != "" {
40
+ date = "Date: " + v .Date
41
+ }
42
+ values := []string {version , commit , date }
43
+ values = deleteEmpty (values )
44
+ str = strings .Join (values , "\n " )
45
+ return str + "\n "
46
+ }
47
+
48
+ func deleteEmpty (s []string ) []string {
49
+ var r []string
50
+ for _ , str := range s {
51
+ if str != "" {
52
+ r = append (r , str )
53
+ }
54
+ }
55
+ return r
34
56
}
0 commit comments