Skip to content

Commit b9bbe20

Browse files
Merge pull request #139 from MatteoPologruto/version-update
Update ls release version automatically using ldflags
2 parents ae3861b + 9f13303 commit b9bbe20

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

Diff for: globals/globals.go

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package globals
2+
3+
import (
4+
"os"
5+
"path/filepath"
6+
7+
"github.com/arduino/arduino-language-server/version"
8+
)
9+
10+
var (
11+
// VersionInfo contains all info injected during build
12+
VersionInfo = version.NewInfo(filepath.Base(os.Args[0]))
13+
)

Diff for: ls/ls.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
"github.com/arduino/arduino-cli/executils"
1616
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/settings/v1"
17+
"github.com/arduino/arduino-language-server/globals"
1718
"github.com/arduino/arduino-language-server/sourcemapper"
1819
"github.com/arduino/arduino-language-server/streams"
1920
"github.com/arduino/go-paths-helper"
@@ -139,6 +140,7 @@ func NewINOLanguageServer(stdin io.Reader, stdout io.Writer, config *Config) *IN
139140
}
140141

141142
logger.Logf("Initial board configuration: %s", ls.config.Fqbn)
143+
logger.Logf("%s", globals.VersionInfo.String())
142144
logger.Logf("Language server build path: %s", ls.buildPath)
143145
logger.Logf("Language server build sketch root: %s", ls.buildSketchRoot)
144146
logger.Logf("Language server FULL build path: %s", ls.fullBuildPath)
@@ -356,7 +358,7 @@ func (ls *INOLanguageServer) initializeReqFromIDE(ctx context.Context, logger js
356358
},
357359
ServerInfo: &lsp.InitializeResultServerInfo{
358360
Name: "arduino-language-server",
359-
Version: "0.7.2",
361+
Version: globals.VersionInfo.VersionString,
360362
},
361363
}
362364
logger.Logf("initialization parameters: %s", string(lsp.EncodeMessage(resp)))

Diff for: version/version.go

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package version
2+
3+
import "fmt"
4+
5+
var (
6+
defaultVersionString = "0.0.0-git"
7+
versionString = ""
8+
commit = ""
9+
date = ""
10+
)
11+
12+
// Info is a struct that contains informations about the application
13+
type Info struct {
14+
Application string `json:"Application"`
15+
VersionString string `json:"VersionString"`
16+
Commit string `json:"Commit"`
17+
Date string `json:"Date"`
18+
}
19+
20+
// NewInfo returns a pointer to an updated Info struct
21+
func NewInfo(application string) *Info {
22+
return &Info{
23+
Application: application,
24+
VersionString: versionString,
25+
Commit: commit,
26+
Date: date,
27+
}
28+
}
29+
30+
func (i *Info) String() string {
31+
return fmt.Sprintf("%[1]s Version: %[2]s Commit: %[3]s Date: %[4]s", i.Application, i.VersionString, i.Commit, i.Date)
32+
}
33+
34+
//nolint:gochecknoinits
35+
func init() {
36+
if versionString == "" {
37+
versionString = defaultVersionString
38+
}
39+
}

0 commit comments

Comments
 (0)