mirror of https://github.com/docker/compose.git
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
|
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,
|
||
|
})
|
||
|
}
|
||
|
}
|