diff options
Diffstat (limited to 'internal/session/spec.go')
| -rw-r--r-- | internal/session/spec.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/internal/session/spec.go b/internal/session/spec.go index 0a6ad4e..6df11fd 100644 --- a/internal/session/spec.go +++ b/internal/session/spec.go @@ -24,9 +24,14 @@ type Spec struct { // NewSpec returns a session specification from client args. func NewSpec(args config.Args) Spec { + files := splitFiles(args.What) + if args.Serverless && len(files) == 0 && supportsServerlessPipe(args.Mode) { + files = []string{"-"} + } + return Spec{ Mode: args.Mode, - Files: splitFiles(args.What), + Files: files, Options: args.SerializeOptions(), Query: strings.TrimSpace(args.QueryStr), Regex: args.RegexStr, @@ -149,6 +154,15 @@ func splitFiles(what string) []string { return files } +func supportsServerlessPipe(mode omode.Mode) bool { + switch mode { + case omode.TailClient, omode.CatClient, omode.GrepClient, omode.MapClient: + return true + default: + return false + } +} + func (s Spec) encodedPayload() (string, error) { payload, err := json.Marshal(s) if err != nil { |
