Skip to content

Commit d19e1ea

Browse files
committed
Add commit field to --version --format=json output
1 parent 1058964 commit d19e1ea

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

Diff for: internal/command/command.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,20 @@ func ArduinoLint(rootCommand *cobra.Command, cliArguments []string) {
3939

4040
if configuration.VersionMode() {
4141
if configuration.OutputFormat() == outputformat.Text {
42-
fmt.Println(configuration.Version() + " " + configuration.BuildTimestamp())
42+
if configuration.Version() == "" {
43+
fmt.Print("0.0.0+" + configuration.Commit())
44+
} else {
45+
fmt.Print(configuration.Version())
46+
}
47+
fmt.Println(" " + configuration.BuildTimestamp())
4348
} else {
4449
versionObject := struct {
4550
Version string `json:"version"`
51+
Commit string `json:"commit"`
4652
BuildTimestamp string `json:"buildTimestamp"`
4753
}{
4854
Version: configuration.Version(),
55+
Commit: configuration.Commit(),
4956
BuildTimestamp: configuration.BuildTimestamp(),
5057
}
5158
versionJSON, err := json.MarshalIndent(versionObject, "", " ")

Diff for: internal/configuration/configuration.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -200,16 +200,18 @@ func VersionMode() bool {
200200
}
201201

202202
var version string
203-
var commit string
204203

205204
func Version() string {
206-
if version == "" {
207-
return "0.0.0+" + commit
208-
}
209-
210205
return version
211206
}
212207

208+
var commit string
209+
210+
// Commit returns the HEAD commit of the arduino-lint repository when the application was built.
211+
func Commit() string {
212+
return commit
213+
}
214+
213215
var buildTimestamp string
214216

215217
func BuildTimestamp() string {

Diff for: internal/configuration/configuration_test.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -237,12 +237,15 @@ func TestInitializeOfficial(t *testing.T) {
237237
}
238238

239239
func TestVersion(t *testing.T) {
240-
commit = "abcd"
241-
assert.Equal(t, "0.0.0+"+commit, Version())
242240
version = "42.1.2"
243241
assert.Equal(t, version, Version())
244242
}
245243

244+
func TestCommit(t *testing.T) {
245+
commit = "abcd"
246+
assert.Equal(t, commit, Commit())
247+
}
248+
246249
func TestBuildTimestamp(t *testing.T) {
247250
buildTimestamp = "2020-11-27T04:05:19+00:00"
248251
assert.Equal(t, buildTimestamp, BuildTimestamp())

Diff for: test/test_all.py

+8
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,14 @@ def test_version(run_command):
177177
assert semver.VersionInfo.isvalid(version=output_list[0])
178178
dateutil.parser.isoparse(output_list[1])
179179

180+
result = run_command(cmd=["--version", "--format", "json"])
181+
assert result.ok
182+
version_output = json.loads(result.stdout)
183+
if version_output["version"] != "":
184+
assert semver.VersionInfo.isvalid(version=version_output["version"])
185+
assert version_output["commit"] != ""
186+
dateutil.parser.isoparse(version_output["buildTimestamp"])
187+
180188

181189
def test_arduino_lint_official(run_command):
182190
project_path = test_data_path.joinpath("ARDUINO_LINT_OFFICIAL")

0 commit comments

Comments
 (0)