@@ -17,6 +17,14 @@ import (
1717)
1818
1919var (
20+ // Version contains the application version number. It's set via ldflags
21+ // when building.
22+ Version = ""
23+
24+ // CommitSHA contains the SHA of the commit that this application was built
25+ // against. It's set via ldflags when building.
26+ CommitSHA = ""
27+
2028 env = termenv .EnvColorProfile ()
2129 theme Theme
2230
@@ -137,44 +145,44 @@ func findInKey(str string, km map[string]struct{}) bool {
137145}
138146
139147func printVersion () {
140- var version string
141- var commitSHA string
142-
143148 info , ok := debug .ReadBuildInfo ()
144149 var buildTime time.Time
150+ var modified bool
145151 if ok {
146- vs := strings .Split (info .Main .Version , "-" )
147- if len (vs ) >= 1 {
148- version = vs [0 ]
149- }
150- if len (vs ) >= 3 {
151- commitSHA = vs [2 ]
152+ if len (Version ) == 0 {
153+ vs := strings .Split (info .Main .Version , "-" )
154+ if len (vs ) >= 1 {
155+ Version = vs [0 ]
156+ }
152157 }
153158
154159 for _ , setting := range info .Settings {
155160 switch setting .Key {
156161 case "vcs.revision" :
157- /*
162+ if len ( CommitSHA ) == 0 {
158163 CommitSHA = setting .Value
159- if len(CommitSHA) > 7 {
160- CommitSHA = CommitSHA[:7 ]
164+ if len (CommitSHA ) > 12 {
165+ CommitSHA = CommitSHA [:12 ]
161166 }
162- */
167+ }
163168 case "vcs.time" :
164169 buildTime , _ = time .Parse (time .RFC3339 , setting .Value )
165170 case "vcs.modified" :
166- // modified = true
171+ modified = true
167172 }
168173 }
169174 }
170175
171- if version == "" || version == "(devel)" {
172- version = "(built from source)"
176+ if Version == "" || Version == "(devel)" {
177+ Version = "(built from source)"
173178 }
174179
175- fmt .Printf ("duf %s" , version )
176- if len (commitSHA ) > 0 {
177- fmt .Printf (" (%s)" , commitSHA )
180+ fmt .Printf ("duf %s" , Version )
181+ if len (CommitSHA ) > 0 {
182+ if modified {
183+ CommitSHA += "+modified"
184+ }
185+ fmt .Printf (" (%s)" , CommitSHA )
178186 }
179187 if ! buildTime .IsZero () {
180188 fmt .Printf (" (built on %s)" , buildTime .Format ("2006-01-02" ))
0 commit comments