Skip to content

Commit 97478aa

Browse files
committed
Fix time format RFC3339 in version #283
1 parent 3d797f5 commit 97478aa

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

Diff for: version/version.go

+19-7
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,27 @@ var (
2626
defaultVersionString = "0.3.7-alpha.preview"
2727
versionString = ""
2828
commit = ""
29-
buildDate = time.Time{}
29+
buildDate = rfc3339Time{}
3030
)
3131

32+
type rfc3339Time struct {
33+
time.Time
34+
}
35+
36+
func (r rfc3339Time) format() string {
37+
return r.Time.Format(time.RFC3339)
38+
}
39+
40+
func (r rfc3339Time) MarshalJSON() ([]byte, error) {
41+
return []byte(`"` + r.format() + `"`), nil
42+
}
43+
3244
// Info FIXMEDOC
3345
type Info struct {
34-
Application string `json:"Application"`
35-
VersionString string `json:"VersionString"`
36-
Commit string `json:"Commit"`
37-
BuildDate time.Time `json:"BuildDate"`
46+
Application string `json:"Application"`
47+
VersionString string `json:"VersionString"`
48+
Commit string `json:"Commit"`
49+
BuildDate rfc3339Time `json:"BuildDate"`
3850
}
3951

4052
// NewInfo FIXMEDOC
@@ -48,13 +60,13 @@ func NewInfo(application string) *Info {
4860
}
4961

5062
func (i *Info) String() string {
51-
return fmt.Sprintf("%s Version: %s Commit: %s BuildDate: %s", i.Application, i.VersionString, i.Commit, i.BuildDate)
63+
return fmt.Sprintf("%s Version: %s Commit: %s BuildDate: %s", i.Application, i.VersionString, i.Commit, i.BuildDate.format())
5264
}
5365

5466
//nolint:gochecknoinits
5567
func init() {
5668
if versionString == "" {
5769
versionString = defaultVersionString
5870
}
59-
buildDate = time.Now().UTC()
71+
buildDate = rfc3339Time{time.Now().UTC()}
6072
}

Diff for: version/version_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ func TestIntegrationBuildInjectedInfo(t *testing.T) {
3838
Application: goldenAppName,
3939
VersionString: "0.0.0-test.preview",
4040
Commit: "deadbeef",
41-
BuildDate: time.Time{},
41+
BuildDate: rfc3339Time{time.Time{}},
4242
}
4343
info := NewInfo(goldenAppName)
4444
require.Equal(t, goldenInfo.Application, info.Application)
4545
require.Equal(t, goldenInfo.VersionString, info.VersionString)
4646
require.Equal(t, goldenInfo.Commit, info.Commit)
47-
require.IsType(t, time.Time{}, info.BuildDate)
47+
require.IsType(t, rfc3339Time{time.Time{}}, info.BuildDate)
4848
require.False(t, info.BuildDate.IsZero())
4949
}

0 commit comments

Comments
 (0)