mirror of https://github.com/databricks/cli.git
Add version flag to print version and exit (#394)
## Changes With this PR, all of the command below print version and exit: ``` $ databricks -v Databricks CLI v0.100.1-dev+4d3fa76 $ databricks --version Databricks CLI v0.100.1-dev+4d3fa76 $ databricks version Databricks CLI v0.100.1-dev+4d3fa76 ``` ## Tests Added integration test for each flag or command.
This commit is contained in:
parent
055e528173
commit
d86a1f0847
|
@ -15,8 +15,9 @@ import (
|
||||||
|
|
||||||
// RootCmd represents the base command when called without any subcommands
|
// RootCmd represents the base command when called without any subcommands
|
||||||
var RootCmd = &cobra.Command{
|
var RootCmd = &cobra.Command{
|
||||||
Use: "databricks",
|
Use: "databricks",
|
||||||
Short: "Databricks CLI",
|
Short: "Databricks CLI",
|
||||||
|
Version: build.GetInfo().Version,
|
||||||
|
|
||||||
// Cobra prints the usage string to stderr if a command returns an error.
|
// Cobra prints the usage string to stderr if a command returns an error.
|
||||||
// This usage string should only be displayed if an invalid combination of flags
|
// This usage string should only be displayed if an invalid combination of flags
|
||||||
|
@ -105,9 +106,5 @@ func Execute() {
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
RootCmd.SetFlagErrorFunc(flagErrorFunc)
|
RootCmd.SetFlagErrorFunc(flagErrorFunc)
|
||||||
|
RootCmd.SetVersionTemplate("Databricks CLI v{{.Version}}\n")
|
||||||
// The VS Code extension passes `-v` in debug mode and must be changed
|
|
||||||
// to use the new flags in `./logger.go` prior to removing this flag.
|
|
||||||
RootCmd.PersistentFlags().BoolP("verbose", "v", false, "")
|
|
||||||
RootCmd.PersistentFlags().MarkHidden("verbose")
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,8 @@ var versionCmd = &cobra.Command{
|
||||||
return enc.Encode(info)
|
return enc.Encode(info)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Fprintln(cmd.OutOrStdout(), info.Version)
|
_, err := fmt.Fprintf(cmd.OutOrStdout(), "Databricks CLI v%s\n", info.Version)
|
||||||
return nil
|
return err
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/databricks/cli/cmd/root"
|
"github.com/databricks/cli/cmd/root"
|
||||||
|
_ "github.com/databricks/cli/cmd/version"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
package internal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/databricks/cli/internal/build"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
var expectedVersion = fmt.Sprintf("Databricks CLI v%s\n", build.GetInfo().Version)
|
||||||
|
|
||||||
|
func TestVersionFlagShort(t *testing.T) {
|
||||||
|
stdout, stderr := RequireSuccessfulRun(t, "-v")
|
||||||
|
assert.Equal(t, expectedVersion, stdout.String())
|
||||||
|
assert.Equal(t, "", stderr.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestVersionFlagLong(t *testing.T) {
|
||||||
|
stdout, stderr := RequireSuccessfulRun(t, "--version")
|
||||||
|
assert.Equal(t, expectedVersion, stdout.String())
|
||||||
|
assert.Equal(t, "", stderr.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestVersionCommand(t *testing.T) {
|
||||||
|
stdout, stderr := RequireSuccessfulRun(t, "version")
|
||||||
|
assert.Equal(t, expectedVersion, stdout.String())
|
||||||
|
assert.Equal(t, "", stderr.String())
|
||||||
|
}
|
Loading…
Reference in New Issue