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 (
|
||||
contextAgnosticCommands = map[string]struct{}{
|
||||
"compose": {},
|
||||
"context": {},
|
||||
"login": {},
|
||||
"logout": {},
|
||||
"serve": {},
|
||||
"version": {},
|
||||
"compose": {},
|
||||
"context": {},
|
||||
"login": {},
|
||||
"logout": {},
|
||||
"serve": {},
|
||||
"version": {},
|
||||
"backend-metadata": {},
|
||||
}
|
||||
unknownCommandRegexp = regexp.MustCompile(`unknown command "([^"]*)"`)
|
||||
)
|
||||
|
@ -132,6 +133,7 @@ func main() {
|
|||
cmd.KillCommand(),
|
||||
cmd.SecretCommand(),
|
||||
cmd.PruneCommand(),
|
||||
cmd.MetadataCommand(),
|
||||
|
||||
// Place holders
|
||||
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) {
|
||||
c := NewParallelE2eCLI(t, binDir)
|
||||
|
||||
|
|
Loading…
Reference in New Issue