mirror of https://github.com/docker/compose.git
Merge pull request #1078 from docker/backend_cli
Add backend-metadata command for CLI backend
This commit is contained in:
commit
92eeb624ea
|
@ -0,0 +1,57 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 Docker Compose CLI authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"github.com/docker/compose-cli/internal"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BackendMetadata backend metadata
|
||||||
|
// TODO import this from cli when merged & available in /docker/cli
|
||||||
|
type BackendMetadata struct {
|
||||||
|
Name string
|
||||||
|
Version string
|
||||||
|
}
|
||||||
|
|
||||||
|
// MetadataCommand command to display version
|
||||||
|
func MetadataCommand() *cobra.Command {
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "backend-metadata",
|
||||||
|
Short: "return CLI backend metadata",
|
||||||
|
Args: cobra.MaximumNArgs(0),
|
||||||
|
Hidden: true,
|
||||||
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
|
metadata := BackendMetadata{
|
||||||
|
Name: "Cloud integration",
|
||||||
|
Version: internal.Version,
|
||||||
|
}
|
||||||
|
jsonMeta, err := json.Marshal(metadata)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fmt.Println(string(jsonMeta))
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return cmd
|
||||||
|
}
|
14
cli/main.go
14
cli/main.go
|
@ -57,12 +57,13 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
contextAgnosticCommands = map[string]struct{}{
|
contextAgnosticCommands = map[string]struct{}{
|
||||||
"compose": {},
|
"compose": {},
|
||||||
"context": {},
|
"context": {},
|
||||||
"login": {},
|
"login": {},
|
||||||
"logout": {},
|
"logout": {},
|
||||||
"serve": {},
|
"serve": {},
|
||||||
"version": {},
|
"version": {},
|
||||||
|
"backend-metadata": {},
|
||||||
}
|
}
|
||||||
unknownCommandRegexp = regexp.MustCompile(`unknown command "([^"]*)"`)
|
unknownCommandRegexp = regexp.MustCompile(`unknown command "([^"]*)"`)
|
||||||
)
|
)
|
||||||
|
@ -132,6 +133,7 @@ func main() {
|
||||||
cmd.KillCommand(),
|
cmd.KillCommand(),
|
||||||
cmd.SecretCommand(),
|
cmd.SecretCommand(),
|
||||||
cmd.PruneCommand(),
|
cmd.PruneCommand(),
|
||||||
|
cmd.MetadataCommand(),
|
||||||
|
|
||||||
// Place holders
|
// Place holders
|
||||||
cmd.EcsCommand(),
|
cmd.EcsCommand(),
|
||||||
|
|
|
@ -467,6 +467,15 @@ func TestUnsupportedCommand(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBackendMetadata(t *testing.T) {
|
||||||
|
c := NewParallelE2eCLI(t, binDir)
|
||||||
|
|
||||||
|
t.Run("backend-metadata", func(t *testing.T) {
|
||||||
|
res := c.RunDockerCmd("backend-metadata")
|
||||||
|
res.Assert(t, icmd.Expected{Out: `{"Name":"Cloud integration","Version":"`})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestVersion(t *testing.T) {
|
func TestVersion(t *testing.T) {
|
||||||
c := NewParallelE2eCLI(t, binDir)
|
c := NewParallelE2eCLI(t, binDir)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue