aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2026-02-19 21:59:26 -0600
committerCalvin Rose <calsrose@gmail.com>2026-02-19 21:59:26 -0600
commitfc05b65326011774ed1a1bec1e15aa81f7d5dd7d (patch)
tree5c269c284f5cbb29025e550a08cac646667ca7b9
parentAdd *pipefile* and *errexit* to sh-dsl. (diff)
Disallow empty pipelines.
They didn't work before but gave strange errors.
-rw-r--r--spork/sh-dsl.janet1
-rw-r--r--test/suite-sh-dsl.janet6
2 files changed, 7 insertions, 0 deletions
diff --git a/spork/sh-dsl.janet b/spork/sh-dsl.janet
index 3f9b877..30c5a9f 100644
--- a/spork/sh-dsl.janet
+++ b/spork/sh-dsl.janet
@@ -248,6 +248,7 @@
(unless (empty? cmd-buffer) (next-cmd))
# Process and check pipeline
+ (assert (next pipeline) "cannot make empty pipeline")
(eachp [i {:tab t}] pipeline
(def is-first (zero? i))
(def is-last (= i (dec (length pipeline))))
diff --git a/test/suite-sh-dsl.janet b/test/suite-sh-dsl.janet
index ec92ad1..32b1af2 100644
--- a/test/suite-sh-dsl.janet
+++ b/test/suite-sh-dsl.janet
@@ -16,6 +16,12 @@
(assert (deep= @"hi\n" ($< echo hi)) "echo 2")
(assert (deep= @"hi" ($<_ echo hi)) "echo 3")
+ # Malformed (eval wrapped since these are macros)
+ (assert-error "malformed 1" (eval '($)))
+ (assert-error "malformed 2" (eval '($<)))
+ (assert-error "malformed 3" (eval '($<_)))
+ (assert-error "malformed 4" (eval '($< < README.md)))
+
# Pipes
(assert (deep= @"hi" ($<_ echo "hi\nhello" | grep hi)) "pipeline 1")
(assert-error "bad program" (deep= @"hi" ($<_ echo "hi\nhello" | greppy-123abc456789 hi)))