package main import ( "context" "flag" "fmt" "log" "net/http" "os" ) // runSystemSeedsFloorVerb is `carlos system seeds-floor publish` // (seeded-instances spec §3.3, §10 step 2). func runSystemSeedsFloorVerb(rest []string) { if len(rest) == 0 || rest[0] != "publish" { systemUsage() os.Exit(2) } fs := flag.NewFlagSet("system seeds-floor publish", flag.ExitOnError) consoleFlag := consoleOption(fs, "console origin (default: the only logged-in one)") minRelease := fs.String("min-release", "", "the first release whose boxes can place a seed, such as v0.27.0") fs.Parse(rest[1:]) if *minRelease == "" || fs.NArg() != 0 { fs.Usage() os.Exit(2) } sess := requireDeployAPISession(*consoleFlag) printUsing(stdout, sess) status, body, err := sess.postJSON(context.Background(), "/api/cli/system/seeds-floor", map[string]string{"min_release": *minRelease}) if err != nil { log.Fatalf("carlos system seeds-floor publish: %v", err) } if status != http.StatusOK { log.Fatalf("carlos system seeds-floor publish: %v", apiErrorFromBody(status, body)) } fmt.Fprintln(stdout, fmt.Sprintf("published the seeds floor at %s. Every box arms it within the hour.", *minRelease)) }