| 107 | } |
| 108 | |
| 109 | func parseSheetsAppendValues(valuesJSON string, values []string, input io.Reader) ([][]interface{}, error) { |
| 110 | switch { |
| 111 | case strings.TrimSpace(valuesJSON) != "": |
| 112 | b, err := resolveInlineOrFileBytes(valuesJSON, input) |
| 113 | if err != nil { |
| 114 | return nil, usagef("read --values-json: %v", err) |
| 115 | } |
| 116 | |
| 117 | parsed, err := sheetsvalues.Decode(b) |
| 118 | if err != nil { |
| 119 | return nil, sheetsValuesPlannerError(err) |
| 120 | } |
| 121 | |
| 122 | if err := sheetsvalues.RequireRows(parsed); err != nil { |
| 123 | return nil, sheetsValuesPlannerError(err) |
| 124 | } |
| 125 | |
| 126 | return parsed, nil |
| 127 | case len(values) > 0: |
| 128 | return sheetsvalues.ParseArgs(values), nil |
| 129 | default: |
| 130 | return nil, usage("provide values as args or via --values-json") |
| 131 | } |
| 132 | } |
| 133 | |
| 134 | func validateSheetsTableAppendWidth(table sheetsTableItem, values [][]interface{}) error { |
| 135 | if len(table.Columns) == 0 { |