MCPcopy Create free account
hub / github.com/openclaw/gogcli / Run

Method Run

internal/cmd/sheets.go:469–562  ·  view source on GitHub ↗
(ctx context.Context, flags *RootFlags)

Source from the content-addressed store, hash-verified

467}
468
469func (c *SheetsAppendCmd) Run(ctx context.Context, flags *RootFlags) error {
470 u := ui.FromContext(ctx)
471
472 spreadsheetID := normalizeGoogleID(strings.TrimSpace(c.SpreadsheetID))
473 rangeSpec := cleanRange(c.Range)
474 if spreadsheetID == "" {
475 return usage("empty spreadsheetId")
476 }
477 if strings.TrimSpace(rangeSpec) == "" {
478 return usage("empty range")
479 }
480
481 var values [][]interface{}
482
483 switch {
484 case strings.TrimSpace(c.ValuesJSON) != "":
485 b, err := resolveInlineOrFileBytes(c.ValuesJSON, stdinReader(ctx))
486 if err != nil {
487 return usagef("read --values-json: %v", err)
488 }
489
490 values, err = sheetsvalues.Decode(b)
491 if err != nil {
492 return sheetsValuesPlannerError(err)
493 }
494 case len(c.Values) > 0:
495 values = sheetsvalues.ParseArgs(c.Values)
496 default:
497 return usage("provide values as args or via --values-json")
498 }
499
500 valueInputOption := strings.TrimSpace(c.ValueInput)
501 if valueInputOption == "" {
502 valueInputOption = sheetsDefaultValueInputOption
503 }
504 insertDataOption := strings.TrimSpace(c.Insert)
505
506 if err := dryRunExit(ctx, flags, "sheets.append", map[string]any{
507 "spreadsheet_id": spreadsheetID,
508 "range": rangeSpec,
509 "values": values,
510 "value_input_option": valueInputOption,
511 "insert_data_option": insertDataOption,
512 "copy_validation_from": strings.TrimSpace(c.CopyValidationFrom),
513 }); err != nil {
514 return err
515 }
516
517 account, err := requireAccount(flags)
518 if err != nil {
519 return err
520 }
521
522 svc, err := sheetsService(ctx, account)
523 if err != nil {
524 return err
525 }
526

Callers

nothing calls this directly

Calls 15

FromContextFunction · 0.92
DecodeFunction · 0.92
ParseArgsFunction · 0.92
IsJSONFunction · 0.92
WriteJSONFunction · 0.92
normalizeGoogleIDFunction · 0.85
cleanRangeFunction · 0.85
usageFunction · 0.85
resolveInlineOrFileBytesFunction · 0.85
stdinReaderFunction · 0.85
usagefFunction · 0.85
sheetsValuesPlannerErrorFunction · 0.85

Tested by

no test coverage detected