diff options
-rw-r--r-- | src/Utils/CLI.php | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/Utils/CLI.php b/src/Utils/CLI.php index 31d09ce..79e88dc 100644 --- a/src/Utils/CLI.php +++ b/src/Utils/CLI.php @@ -77,6 +77,11 @@ class CLI return 0; } + if (!isset($params['q'])) { + if ($stdIn = $this->readStdin()) { + $params['q'] = $stdIn; + } + } if (isset($params['q'])) { echo Formatter::format( $params['q'], @@ -127,6 +132,11 @@ class CLI if (isset($params['c'])) { Context::load($params['c']); } + if (!isset($params['q'])) { + if ($stdIn = $this->readStdin()) { + $params['q'] = $stdIn; + } + } if (isset($params['q'])) { $lexer = new Lexer($params['q'], false); $parser = new Parser($lexer->list); @@ -177,6 +187,11 @@ class CLI return 0; } + if (!isset($params['q'])) { + if ($stdIn = $this->readStdin()) { + $params['q'] = $stdIn; + } + } if (isset($params['q'])) { $lexer = new Lexer($params['q'], false); foreach ($lexer->list->tokens as $idx => $token) { @@ -199,4 +214,12 @@ class CLI return 1; } + + private function readStdin() { + stream_set_blocking(STDIN, false); + $stdin = stream_get_contents(STDIN); + // restore-default block-mode setting + stream_set_blocking(STDIN, true); + return $stdin; + } } |