compose/cli/cmd/context/create.go

49 lines
1.2 KiB
Go
Raw Normal View History

2020-05-14 20:55:40 +02:00
package context
import (
"context"
"github.com/spf13/cobra"
"github.com/docker/api/context/store"
)
type createOpts struct {
description string
aciLocation string
aciSubscriptionID string
aciResourceGroup string
}
func createCommand() *cobra.Command {
var opts createOpts
cmd := &cobra.Command{
Use: "create CONTEXT BACKEND [OPTIONS]",
Short: "Create a context",
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
return runCreate(cmd.Context(), opts, args[0], args[1])
},
}
cmd.Flags().StringVar(&opts.description, "description", "", "Description of the context")
cmd.Flags().StringVar(&opts.aciLocation, "aci-location", "eastus", "Location")
cmd.Flags().StringVar(&opts.aciSubscriptionID, "aci-subscription-id", "", "Location")
cmd.Flags().StringVar(&opts.aciResourceGroup, "aci-resource-group", "", "Resource group")
return cmd
}
func runCreate(ctx context.Context, opts createOpts, name string, contextType string) error {
switch contextType {
case "aci":
return createACIContext(ctx, name, opts)
default:
s := store.ContextStore(ctx)
return s.Create(name, store.TypedContext{
Type: contextType,
Description: opts.description,
})
}
}