From f8b201a92d7a397f5cfa117a92337b687373618b Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 13 Oct 2022 14:07:38 +0200 Subject: [PATCH 1/4] Add version package --- version/version.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 version/version.go diff --git a/version/version.go b/version/version.go new file mode 100644 index 0000000..b9ecc95 --- /dev/null +++ b/version/version.go @@ -0,0 +1,39 @@ +package version + +import "fmt" + +var ( + defaultVersionString = "0.0.0-git" + versionString = "" + commit = "" + date = "" +) + +// Info is a struct that contains informations 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 + } +} From c7dea162fd62fdc26fc0e92fc8b33bf9270fcd86 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 13 Oct 2022 14:09:59 +0200 Subject: [PATCH 2/4] Add globals package --- globals/globals.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 globals/globals.go diff --git a/globals/globals.go b/globals/globals.go new file mode 100644 index 0000000..29019fe --- /dev/null +++ b/globals/globals.go @@ -0,0 +1,13 @@ +package globals + +import ( + "os" + "path/filepath" + + "github.com/arduino/arduino-language-server/version" +) + +var ( + // VersionInfo contains all info injected during build + VersionInfo = version.NewInfo(filepath.Base(os.Args[0])) +) From cc6fe824403cf640c45e7e03f1a6937a6b75b404 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 13 Oct 2022 14:14:53 +0200 Subject: [PATCH 3/4] Use ldflags to automatically update version in ls.go --- ls/ls.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ls/ls.go b/ls/ls.go index d192b59..7ba34b7 100644 --- a/ls/ls.go +++ b/ls/ls.go @@ -14,6 +14,7 @@ import ( "github.com/arduino/arduino-cli/executils" rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/settings/v1" + "github.com/arduino/arduino-language-server/globals" "github.com/arduino/arduino-language-server/sourcemapper" "github.com/arduino/arduino-language-server/streams" "github.com/arduino/go-paths-helper" @@ -356,7 +357,7 @@ func (ls *INOLanguageServer) initializeReqFromIDE(ctx context.Context, logger js }, ServerInfo: &lsp.InitializeResultServerInfo{ Name: "arduino-language-server", - Version: "0.7.2", + Version: globals.VersionInfo.VersionString, }, } logger.Logf("initialization parameters: %s", string(lsp.EncodeMessage(resp))) From 9f13303450e9df8ad1be8f9c1146de48441f71b5 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Tue, 18 Oct 2022 12:43:28 +0200 Subject: [PATCH 4/4] Print language server version in the log --- ls/ls.go | 1 + 1 file changed, 1 insertion(+) diff --git a/ls/ls.go b/ls/ls.go index 7ba34b7..feb2e3b 100644 --- a/ls/ls.go +++ b/ls/ls.go @@ -140,6 +140,7 @@ func NewINOLanguageServer(stdin io.Reader, stdout io.Writer, config *Config) *IN } logger.Logf("Initial board configuration: %s", ls.config.Fqbn) + logger.Logf("%s", globals.VersionInfo.String()) logger.Logf("Language server build path: %s", ls.buildPath) logger.Logf("Language server build sketch root: %s", ls.buildSketchRoot) logger.Logf("Language server FULL build path: %s", ls.fullBuildPath)