// Package main contains the binary entrypoint for art, a tool for uploading // job artifacts to GCS. package main import ( "fmt" "os" "edge-infra.dev/cmd/tools/art/actions" "edge-infra.dev/cmd/tools/art/argo" "edge-infra.dev/pkg/lib/cli" "edge-infra.dev/pkg/lib/cli/sink" "edge-infra.dev/pkg/lib/runtime/manager/signals" "edge-infra.dev/pkg/lib/runtime/version" ) func main() { cmd := New() ctx := signals.SetupSignalHandler() if err := cmd.Parse(os.Args[1:]); err != nil { fmt.Fprintln(os.Stderr, "failed to parse: ", err) os.Exit(1) } if err := cmd.Run(ctx); err != nil { fmt.Fprintln(os.Stderr, "failed to run: ", err) os.Exit(1) } } func New() *sink.Command { cmd := &sink.Command{ Use: "art [command] [directory]...", Short: "uploads artifacts from [directory] to google cloud storage", Commands: []*sink.Command{ cli.NewVersionCmd(version.New()), actions.New(), argo.New(), }, } return cmd }