summaryrefslogtreecommitdiff
path: root/internal/session/spec.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/session/spec.go')
-rw-r--r--internal/session/spec.go16
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 {