(ctx context.Context, flags *RootFlags)
| 72 | } |
| 73 | |
| 74 | func (c *SheetsTableGetCmd) Run(ctx context.Context, flags *RootFlags) error { |
| 75 | u := ui.FromContext(ctx) |
| 76 | account, err := requireAccount(flags) |
| 77 | if err != nil { |
| 78 | return err |
| 79 | } |
| 80 | |
| 81 | spreadsheetID := normalizeGoogleID(strings.TrimSpace(c.SpreadsheetID)) |
| 82 | in := strings.TrimSpace(c.TableID) |
| 83 | if spreadsheetID == "" { |
| 84 | return usage("empty spreadsheetId") |
| 85 | } |
| 86 | if in == "" { |
| 87 | return usage("empty tableId") |
| 88 | } |
| 89 | |
| 90 | svc, err := sheetsService(ctx, account) |
| 91 | if err != nil { |
| 92 | return err |
| 93 | } |
| 94 | |
| 95 | tables, err := fetchSpreadsheetTables(ctx, svc, spreadsheetID) |
| 96 | if err != nil { |
| 97 | return err |
| 98 | } |
| 99 | table, found, err := resolveSheetsTable(in, tables) |
| 100 | if err != nil { |
| 101 | return err |
| 102 | } |
| 103 | if !found { |
| 104 | return usagef("unknown table %q", in) |
| 105 | } |
| 106 | |
| 107 | if outfmt.IsJSON(ctx) { |
| 108 | return outfmt.WriteJSON(ctx, stdoutWriter(ctx), map[string]any{"table": table}) |
| 109 | } |
| 110 | |
| 111 | u.Out().Linef("name\t%s", table.Name) |
| 112 | u.Out().Linef("id\t%s", table.TableID) |
| 113 | u.Out().Linef("sheet\t%s", table.SheetTitle) |
| 114 | u.Out().Linef("a1\t%s", table.A1) |
| 115 | for _, col := range table.Columns { |
| 116 | u.Out().Linef("column\t%d\t%s\t%s", col.ColumnIndex, col.ColumnName, col.ColumnType) |
| 117 | } |
| 118 | return nil |
| 119 | } |
| 120 | |
| 121 | type SheetsTableCreateCmd struct { |
| 122 | SpreadsheetID string `arg:"" name:"spreadsheetId" help:"Spreadsheet ID"` |
nothing calls this directly
no test coverage detected