summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--it.class8
-rwxr-xr-xtest/it_pipe.t1
2 files changed, 7 insertions, 2 deletions
diff --git a/it.class b/it.class
index 13e3aa0..6e294c3 100644
--- a/it.class
+++ b/it.class
@@ -1226,9 +1226,13 @@ static function cat($p = null)
* @param $cmd command to execute, or if it is an array, the lines to use
* @param $args named arguments to fill into cmd. see it::exec for usage
*/
-static function pipe($cmd, $args = array())
+static function pipe($cmd, ...$args)
{
- return new it_pipe(is_string($cmd) ? array('cmd' => $cmd, 'args' => $args) : array('data' => $cmd));
+ $values = [];
+ foreach ($args as $arg)
+ $values = array_merge($values, (array)$arg);
+
+ return new it_pipe(is_string($cmd) ? array('cmd' => $cmd, 'args' => $values) : array('data' => $cmd));
}
/**
diff --git a/test/it_pipe.t b/test/it_pipe.t
index 15e51f6..f6b069a 100755
--- a/test/it_pipe.t
+++ b/test/it_pipe.t
@@ -5,6 +5,7 @@
is(it::cat("test/it_pipe.t")->lines[1], "<?php");
is(it::cat(['data' => "foo"])->lines(), ["foo"]);
is(it::pipe('echo {x}', ['x' => "foo"])->lines(), ["foo"]);
+is(it::pipe('echo {0}{1}', "f", "oo")->lines(), ["foo"]);
is(it::pipe(['foo'])->lines(), ["foo"]);
# csv()