// Package root implements setup and execution of root `hack` CLI command. package root import ( "context" "fmt" "os" "github.com/peterbourgon/ff/v3/ffcli" "edge-infra.dev/pkg/lib/cli/commands" "edge-infra.dev/pkg/tools/hack" "edge-infra.dev/pkg/tools/hack/cmd/owners" ) func Run() error { root, cfg := hack.New() root.Subcommands = []*ffcli.Command{ owners.New(cfg), commands.Version(), } if err := root.Parse(os.Args[1:]); err != nil { return fmt.Errorf("❌ failed to parse flags: %w", err) } if err := cfg.AfterParse(); err != nil { return fmt.Errorf("❌ failed to compute config from parsed flags: %w", err) } // TODO: set logger via context if err := root.Run(context.Background()); err != nil { return fmt.Errorf("❌ execution error: %w", err) } return nil }