8000 [Console] Consider STDIN interactive · symfony/symfony@ef157d5 · GitHub
[go: up one dir, main page]

Skip to content

Commit ef157d5

Browse files
ostroluckynicolas-grekas
authored andcommitted
[Console] Consider STDIN interactive
1 parent cd2dec3 commit ef157d5

File tree

3 files changed

+29
-19
lines changed

3 files changed

+29
-19
lines changed

src/Symfony/Component/Console/Application.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
use Symfony\Component\Console\Input\InputDefinition;
3737
use Symfony\Component\Console\Input\InputInterface;
3838
use Symfony\Component\Console\Input\InputOption;
39-
use Symfony\Component\Console\Input\StreamableInputInterface;
4039
use Symfony\Component\Console\Output\ConsoleOutput;
4140
use Symfony\Component\Console\Output\ConsoleOutputInterface;
4241
use Symfony\Component\Console\Output\OutputInterface;
@@ -947,16 +946,6 @@ protected function configureIO(InputInterface $input, OutputInterface $output)
947946

948947
if (true === $input->hasParameterOption(['--no-interaction', '-n'], true)) {
949948
$input->setInteractive(false);
950-
} elseif (\function_exists('posix_isatty')) {
951-
$inputStream = null;
952-
953-
if ($input instanceof StreamableInputInterface) {
954-
$inputStream = $input->getStream();
955-
}
956-
957-
if (!@posix_isatty($inputStream) && false === getenv('SHELL_INTERACTIVE')) {
958-
$input->setInteractive(false);
959-
}
960949
}
961950

962951
switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) {

src/Symfony/Component/Console/Tester/ApplicationTester.php

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,19 +59,12 @@ public function run(array $input, $options = [])
5959
$this->input->setInteractive($options['interactive']);
6060
}
6161

62-
$shellInteractive = getenv('SHELL_INTERACTIVE');
63-
6462
if ($this->inputs) {
6563
$this->input->setStream(self::createStream($this->inputs));
66-
putenv('SHELL_INTERACTIVE=1');
6764
}
6865

6966
$this->initOutput($options);
7067

71-
$this->statusCode = $this->application->run($this->input, $this->output);
72-
73-
putenv($shellInteractive ? "SHELL_INTERACTIVE=$shellInteractive" : 'SHELL_INTERACTIVE');
74-
75-
return $this->statusCode;
68+
return $this->statusCode = $this->application->run($this->input, $this->output);
7669
}
7770
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--STDIN--
2+
Hello World
3+
--FILE--
4+
<?php
5+
6+
use Symfony\Component\Console\Application;
7+
use Symfony\Component\Console\Helper\QuestionHelper;
8+
use Symfony\Component\Console\Input\InputInterface;
9+
use Symfony\Component\Console\Output\OutputInterface;
10+
use Symfony\Component\Console\Question\Question;
11+
12+
$vendor = __DIR__;
13+
while (!file_exists($vendor.'/vendor')) {
14+
$vendor = \dirname($vendor);
15+
}
16+
require $vendor.'/vendor/autoload.php';
17+
18+
(new Application())
19+
->register('app')
20+
->setCode(function(InputInterface $input, OutputInterface $output) {
21+
$output->writeln((new QuestionHelper())->ask($input, $output, new Question('Foo?')));
22+
})
23+
->getApplication()
24+
->setDefaultCommand('app', true)
25+
->run()
26+
;
27+
--EXPECT--
28+
Foo?Hello World

0 commit comments

Comments
 (0)
0