From 7513e62a6cce093d592668aeb46dd740c320fee0 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 13 Oct 2025 15:18:41 -0600 Subject: [PATCH] feat(gsheet2env): add -d to change delimiter --- io/transform/gsheet2csv/cmd/gsheet2env/main.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/io/transform/gsheet2csv/cmd/gsheet2env/main.go b/io/transform/gsheet2csv/cmd/gsheet2env/main.go index de0db22..5fc2493 100644 --- a/io/transform/gsheet2csv/cmd/gsheet2env/main.go +++ b/io/transform/gsheet2csv/cmd/gsheet2env/main.go @@ -22,12 +22,19 @@ func isValidKey(key string) bool { } func main() { + delimString := flag.String("d", ",", "field delimiter to use for output file ('\\t' for tab, '^_' for Unit Separator, etc)") noShebang := flag.Bool("no-shebang", false, "don't begin the file with #!/bin/sh") noHeader := flag.Bool("no-header", false, "treat all non-comment rows as ENVs - don't expect a header") noExport := flag.Bool("no-export", false, "disable export prefix") outputFile := flag.String("o", "-", "path to output env file (default: stdout)") flag.Parse() + delim, err := gsheet2csv.DecodeDelimiter(*delimString) + if err != nil { + fmt.Fprintf(os.Stderr, "Error decoding output delimiter: %v\n", err) + os.Exit(1) + } + // Require Google Sheet URL as argument if len(flag.Args()) != 1 { fmt.Fprintf(os.Stderr, "Error: exactly one Google Sheet URL or path is required\n") @@ -54,6 +61,7 @@ func main() { gsr := gsheet2csv.NewReaderFrom(gsheetURLOrPath) // preserves comment-looking data (and actual comments) gsr.Comment = 0 + gsr.Comma = delim gsr.FieldsPerRecord = -1 if !*noShebang {