printPlaybookMetadata writes the human-readable view of a playbook row.
(db *sql.DB, pb *flowdb.Playbook, root string)
| 490 | |
| 491 | // printPlaybookMetadata writes the human-readable view of a playbook row. |
| 492 | func printPlaybookMetadata(db *sql.DB, pb *flowdb.Playbook, root string) { |
| 493 | archivedMarker := "" |
| 494 | if pb.ArchivedAt.Valid { |
| 495 | archivedMarker = " (archived)" |
| 496 | } |
| 497 | fmt.Printf("slug: %s%s\n", pb.Slug, archivedMarker) |
| 498 | fmt.Printf("name: %s\n", pb.Name) |
| 499 | if pb.ProjectSlug.Valid { |
| 500 | fmt.Printf("project: %s\n", pb.ProjectSlug.String) |
| 501 | } else { |
| 502 | fmt.Printf("project: (floating)\n") |
| 503 | } |
| 504 | |
| 505 | wdLine := pb.WorkDir |
| 506 | if wd, err := flowdb.GetWorkdir(db, pb.WorkDir); err == nil { |
| 507 | var parts []string |
| 508 | if wd.Name.Valid && wd.Name.String != "" { |
| 509 | parts = append(parts, "known: "+wd.Name.String) |
| 510 | } else { |
| 511 | parts = append(parts, "known") |
| 512 | } |
| 513 | if wd.GitRemote.Valid && wd.GitRemote.String != "" { |
| 514 | parts = append(parts, "origin: "+wd.GitRemote.String) |
| 515 | } |
| 516 | wdLine = fmt.Sprintf("%s [%s]", pb.WorkDir, strings.Join(parts, ", ")) |
| 517 | } |
| 518 | fmt.Printf("work_dir: %s\n", wdLine) |
| 519 | |
| 520 | fmt.Printf("created: %s\n", pb.CreatedAt) |
| 521 | fmt.Printf("updated: %s\n", pb.UpdatedAt) |
| 522 | if pb.ArchivedAt.Valid { |
| 523 | fmt.Printf("archived: %s\n", pb.ArchivedAt.String) |
| 524 | } |
| 525 | |
| 526 | pbDir := filepath.Join(root, "playbooks", pb.Slug) |
| 527 | briefPath := filepath.Join(pbDir, "brief.md") |
| 528 | fmt.Printf("brief: %s\n", briefPath) |
| 529 | |
| 530 | updates := listUpdateFiles(filepath.Join(pbDir, "updates")) |
| 531 | if len(updates) == 0 { |
| 532 | fmt.Println("updates: (none)") |
| 533 | } else { |
| 534 | fmt.Println("updates:") |
| 535 | for _, u := range updates { |
| 536 | fmt.Printf(" - %s\n", u) |
| 537 | } |
| 538 | } |
| 539 | |
| 540 | // Recent runs (last 5). |
| 541 | runs, err := flowdb.ListTasks(db, flowdb.TaskFilter{ |
| 542 | Kind: "playbook_run", |
| 543 | PlaybookSlug: pb.Slug, |
| 544 | }) |
| 545 | if err != nil { |
| 546 | fmt.Fprintf(os.Stderr, "warning: list runs: %v\n", err) |
| 547 | } |
| 548 | if len(runs) == 0 { |
| 549 | fmt.Println("runs (last 5): (none)") |
no test coverage detected