diff options
| author | 2026-02-19 21:59:26 -0600 | |
|---|---|---|
| committer | 2026-02-19 21:59:26 -0600 | |
| commit | fc05b65326011774ed1a1bec1e15aa81f7d5dd7d (patch) | |
| tree | 5c269c284f5cbb29025e550a08cac646667ca7b9 | |
| parent | Add *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.janet | 1 | ||||
| -rw-r--r-- | test/suite-sh-dsl.janet | 6 |
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))) |
