Skip to content

Commit 7bb2192

Browse files
kevinconawaydanielnelson
authored andcommitted
Add internal function for telegraf version (#4828)
1 parent 709eadf commit 7bb2192

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

cmd/telegraf/telegraf.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,16 @@ func main() {
326326
return
327327
}
328328

329+
shortVersion := version
330+
if shortVersion == "" {
331+
shortVersion = "unknown"
332+
}
333+
334+
// Configure version
335+
if err := internal.SetVersion(shortVersion); err != nil {
336+
log.Println("Telegraf version already configured to: " + internal.Version())
337+
}
338+
329339
if runtime.GOOS == "windows" && !(*fRunAsConsole) {
330340
svcConfig := &service.Config{
331341
Name: *fServiceName,

internal/internal.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,32 @@ var (
2424
TimeoutErr = errors.New("Command timed out.")
2525

2626
NotImplementedError = errors.New("not implemented yet")
27+
28+
VersionAlreadySetError = errors.New("version has already been set")
2729
)
2830

31+
// Set via the main module
32+
var version string
33+
2934
// Duration just wraps time.Duration
3035
type Duration struct {
3136
Duration time.Duration
3237
}
3338

39+
// SetVersion sets the telegraf agent version
40+
func SetVersion(v string) error {
41+
if version != "" {
42+
return VersionAlreadySetError
43+
}
44+
version = v
45+
return nil
46+
}
47+
48+
// Version returns the telegraf agent version
49+
func Version() string {
50+
return version
51+
}
52+
3453
// UnmarshalTOML parses the duration from the TOML config file
3554
func (d *Duration) UnmarshalTOML(b []byte) error {
3655
var err error

internal/internal_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,15 @@ func TestCompressWithGzip(t *testing.T) {
182182

183183
assert.Equal(t, testData, string(output))
184184
}
185+
186+
func TestVersionAlreadySet(t *testing.T) {
187+
err := SetVersion("foo")
188+
assert.Nil(t, err)
189+
190+
err = SetVersion("bar")
191+
192+
assert.NotNil(t, err)
193+
assert.IsType(t, VersionAlreadySetError, err)
194+
195+
assert.Equal(t, "foo", Version())
196+
}

0 commit comments

Comments
 (0)