Skip to content

Commit 28d5428

Browse files
committed
Add version command
1 parent a2f5c69 commit 28d5428

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed

Diff for: cli/cli.go

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/arduino/arduino-cloud-cli/cli/device"
1313
"github.com/arduino/arduino-cloud-cli/cli/ota"
1414
"github.com/arduino/arduino-cloud-cli/cli/thing"
15+
"github.com/arduino/arduino-cloud-cli/cli/version"
1516
"github.com/sirupsen/logrus"
1617
"github.com/spf13/cobra"
1718
)
@@ -29,6 +30,7 @@ func Execute() {
2930
PersistentPreRun: preRun,
3031
}
3132

33+
cli.AddCommand(version.NewCommand())
3234
cli.AddCommand(config.NewCommand())
3335
cli.AddCommand(device.NewCommand())
3436
cli.AddCommand(thing.NewCommand())

Diff for: cli/version/version.go

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package version
2+
3+
import (
4+
"os"
5+
6+
"github.com/arduino/arduino-cli/cli/feedback"
7+
v "github.com/arduino/arduino-cloud-cli/version"
8+
"github.com/spf13/cobra"
9+
)
10+
11+
// NewCommand created a new `version` command
12+
func NewCommand() *cobra.Command {
13+
return &cobra.Command{
14+
Use: "version",
15+
Short: "Shows version number of Arduino Cloud CLI.",
16+
Long: "Shows the version number of Arduino Cloud CLI which is installed on your system.",
17+
Example: " " + os.Args[0] + " version",
18+
Args: cobra.NoArgs,
19+
Run: run,
20+
}
21+
}
22+
23+
func run(cmd *cobra.Command, args []string) {
24+
feedback.Print(v.VersionInfo)
25+
}

Diff for: version/version.go

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package version
2+
3+
import "fmt"
4+
5+
var (
6+
defaultVersionString = "0.0.0-git"
7+
versionString = ""
8+
commit = ""
9+
date = ""
10+
VersionInfo *info
11+
)
12+
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+
func newInfo(application string) *info {
21+
return &info{
22+
Application: application,
23+
VersionString: versionString,
24+
Commit: commit,
25+
Date: date,
26+
}
27+
}
28+
29+
func (i *info) String() string {
30+
return fmt.Sprintf("%s Version: %s Commit: %s Date: %s", i.Application, i.VersionString, i.Commit, i.Date)
31+
}
32+
33+
func init() {
34+
if versionString == "" {
35+
versionString = defaultVersionString
36+
}
37+
VersionInfo = newInfo("arduino-cloud-cli")
38+
}

0 commit comments

Comments
 (0)