package commands import ( "context" "fmt" "os" "edge-infra.dev/pkg/edge/edgecli" "edge-infra.dev/pkg/edge/edgecli/commands/activationcode" "edge-infra.dev/pkg/edge/edgecli/commands/banner" "edge-infra.dev/pkg/edge/edgecli/commands/cluster/bootstrap" "edge-infra.dev/pkg/edge/edgecli/commands/cluster/connect" "edge-infra.dev/pkg/edge/edgecli/commands/cluster/register" "edge-infra.dev/pkg/edge/edgecli/commands/clusterconfig" "edge-infra.dev/pkg/edge/edgecli/commands/clustersecret" "edge-infra.dev/pkg/edge/edgecli/commands/context/add" "edge-infra.dev/pkg/edge/edgecli/commands/context/delete" "edge-infra.dev/pkg/edge/edgecli/commands/context/list" "edge-infra.dev/pkg/edge/edgecli/commands/context/set" "edge-infra.dev/pkg/edge/edgecli/commands/context/update" "edge-infra.dev/pkg/edge/edgecli/commands/networkservice" "edge-infra.dev/pkg/edge/edgecli/commands/terminal" "edge-infra.dev/pkg/lib/cli" "edge-infra.dev/pkg/lib/cli/command" "edge-infra.dev/pkg/lib/runtime/version" ) func NewCmd() (command.Command, error) { cfg, err := edgecli.ReadConfig() if err != nil { return command.Command{}, err } root := command.Command{ ShortUsage: "edge", Commands: []*command.Command{ add.NewCmd(cfg), banner.NewCmd(cfg), bootstrap.NewCmd(cfg), clusterconfig.NewCmd(cfg), connect.NewCmd(cfg), delete.NewCmd(cfg), list.NewCmd(cfg), register.NewCmd(cfg), set.NewCmd(cfg), update.NewCmd(cfg), terminal.NewCmd(cfg), clustersecret.NewCmd(cfg), { ShortUsage: "edge version", ShortHelp: "display CLI version information", Exec: func(_ context.Context, _ []string) error { cli.Version(os.Stdout, version.New()) return nil }, }, networkservice.NewCmd(cfg), activationcode.NewCmd(cfg), }, } return root, nil } func Run(ctx context.Context) error { c, err := NewCmd() if err != nil { fmt.Println("error: failed to instantiate CLI: ", err) return err } if err := c.Command().ParseAndRun(ctx, os.Args[1:]); err != nil { fmt.Println(err) return err } return nil }