/
version.go
62 lines (53 loc) · 1.53 KB
/
version.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package cli
import (
"fmt"
"runtime"
"github.com/bitrise-io/bitrise/log"
"github.com/bitrise-io/bitrise/models"
"github.com/bitrise-io/bitrise/output"
"github.com/bitrise-io/bitrise/version"
"github.com/urfave/cli"
)
// VersionOutputModel ...
type VersionOutputModel struct {
Version string `json:"version"`
FormatVersion string `json:"format_version"`
OS string `json:"os"`
GO string `json:"go"`
BuildNumber string `json:"build_number"`
Commit string `json:"commit"`
}
func printVersionCmd(c *cli.Context) error {
fullVersion := c.Bool("full")
if err := output.ConfigureOutputFormat(c); err != nil {
failf("Failed to configure output format, error: %s", err)
}
versionOutput := VersionOutputModel{
Version: version.VERSION,
}
if fullVersion {
versionOutput.FormatVersion = models.FormatVersion
versionOutput.BuildNumber = version.BuildNumber
versionOutput.Commit = version.Commit
versionOutput.OS = fmt.Sprintf("%s (%s)", runtime.GOOS, runtime.GOARCH)
versionOutput.GO = runtime.Version()
}
if output.Format == output.FormatRaw {
if fullVersion {
versionStr := fmt.Sprintf(`version: %s
format version: %s
os: %s
go: %s
build number: %s
commit: %s
`, versionOutput.Version, versionOutput.FormatVersion, versionOutput.OS, versionOutput.GO, versionOutput.BuildNumber, versionOutput.Commit)
log.Print(versionStr)
} else {
versionStr := fmt.Sprintf("%s", versionOutput.Version)
log.Print(versionStr)
}
} else {
output.Print(versionOutput, output.Format)
}
return nil
}