diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-04-05 16:44:17 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-04-11 10:27:09 +0200 |
commit | 2e716d564ef8b8aff1a443f11759acb23a52641b (patch) | |
tree | 7a7e19a6e8b2d062a97a82aa9770bc11b0e278fa /client/go/internal/cli/cmd/feed.go | |
parent | a51e87a9b5c9931fdb1895d996661687166bb863 (diff) |
Support reading documents from stdin
Diffstat (limited to 'client/go/internal/cli/cmd/feed.go')
-rw-r--r-- | client/go/internal/cli/cmd/feed.go | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/client/go/internal/cli/cmd/feed.go b/client/go/internal/cli/cmd/feed.go index ff8b0bc0c0f..895a22d2be5 100644 --- a/client/go/internal/cli/cmd/feed.go +++ b/client/go/internal/cli/cmd/feed.go @@ -34,20 +34,29 @@ documents to a Vespa cluster efficiently. The contents of FILE must be either a JSON array or JSON objects separated by newline (JSONL). + +If FILE is a single dash ('-'), documents will be read from standard input. `, Example: `$ vespa feed documents.jsonl +$ cat documents.jsonl | vespa feed - `, Args: cobra.ExactArgs(1), DisableAutoGenTag: true, SilenceUsage: true, Hidden: true, // TODO(mpolden): Remove when ready for public use RunE: func(cmd *cobra.Command, args []string) error { - f, err := os.Open(args[0]) - if err != nil { - return err + var r io.Reader + if args[0] == "-" { + r = cli.Stdin + } else { + f, err := os.Open(args[0]) + if err != nil { + return err + } + defer f.Close() + r = f } - defer f.Close() - return feed(f, cli, verbose, connections) + return feed(r, cli, verbose, connections) }, } addFeedFlags(cmd, &verbose, &connections) |