Browse Source

[Console] added a --no-ansi option for disable ANSI output (closes #1238)

Fabien Potencier 14 năm trước cách đây
mục cha
commit
740b2ac833

+ 5 - 2
src/Symfony/Component/Console/Application.php

@@ -86,7 +86,8 @@ class Application
             new InputOption('--quiet',          '-q', InputOption::VALUE_NONE, 'Do not output any message.'),
             new InputOption('--verbose',        '-v', InputOption::VALUE_NONE, 'Increase verbosity of messages.'),
             new InputOption('--version',        '-V', InputOption::VALUE_NONE, 'Display this program version.'),
-            new InputOption('--ansi',           '-a', InputOption::VALUE_NONE, 'Force ANSI output.'),
+            new InputOption('--ansi',           '',   InputOption::VALUE_NONE, 'Force ANSI output.'),
+            new InputOption('--no-ansi',        '',   InputOption::VALUE_NONE, 'Disable ANSI output.'),
             new InputOption('--no-interaction', '-n', InputOption::VALUE_NONE, 'Do not ask any interactive question.'),
         ));
     }
@@ -150,8 +151,10 @@ class Application
     {
         $name = $this->getCommandName($input);
 
-        if (true === $input->hasParameterOption(array('--ansi', '-a'))) {
+        if (true === $input->hasParameterOption(array('--ansi'))) {
             $output->setDecorated(true);
+        } elseif (true === $input->hasParameterOption(array('--no-ansi'))) {
+            $output->setDecorated(false);
         }
 
         if (true === $input->hasParameterOption(array('--help', '-h'))) {

+ 2 - 2
tests/Symfony/Tests/Component/Console/ApplicationTest.php

@@ -304,8 +304,8 @@ class ApplicationTest extends \PHPUnit_Framework_TestCase
         $tester->run(array('--ansi' => true));
         $this->assertTrue($tester->getOutput()->isDecorated(), '->run() forces color output if --ansi is passed');
 
-        $tester->run(array('-a' => true));
-        $this->assertTrue($tester->getOutput()->isDecorated(), '->run() forces color output if -a is passed');
+        $tester->run(array('--no-ansi' => true));
+        $this->assertFalse($tester->getOutput()->isDecorated(), '->run() forces color output to be disabled if --no-ansi is passed');
 
         $application = new Application();
         $application->setAutoExit(false);

+ 2 - 1
tests/Symfony/Tests/Component/Console/Fixtures/application_astext1.txt

@@ -8,7 +8,8 @@
   <info>--quiet</info>          <info>-q</info> Do not output any message.
   <info>--verbose</info>        <info>-v</info> Increase verbosity of messages.
   <info>--version</info>        <info>-V</info> Display this program version.
-  <info>--ansi</info>           <info>-a</info> Force ANSI output.
+  <info>--ansi</info>              Force ANSI output.
+  <info>--no-ansi</info>           Disable ANSI output.
   <info>--no-interaction</info> <info>-n</info> Do not ask any interactive question.
 
 <comment>Available commands:</comment>

+ 2 - 1
tests/Symfony/Tests/Component/Console/Fixtures/application_astext2.txt

@@ -8,7 +8,8 @@
   <info>--quiet</info>          <info>-q</info> Do not output any message.
   <info>--verbose</info>        <info>-v</info> Increase verbosity of messages.
   <info>--version</info>        <info>-V</info> Display this program version.
-  <info>--ansi</info>           <info>-a</info> Force ANSI output.
+  <info>--ansi</info>              Force ANSI output.
+  <info>--no-ansi</info>           Disable ANSI output.
   <info>--no-interaction</info> <info>-n</info> Do not ask any interactive question.
 
 <comment>Available commands for the "foo" namespace:</comment>

+ 2 - 1
tests/Symfony/Tests/Component/Console/Fixtures/application_gethelp.txt

@@ -8,5 +8,6 @@
   <info>--quiet</info>          <info>-q</info> Do not output any message.
   <info>--verbose</info>        <info>-v</info> Increase verbosity of messages.
   <info>--version</info>        <info>-V</info> Display this program version.
-  <info>--ansi</info>           <info>-a</info> Force ANSI output.
+  <info>--ansi</info>              Force ANSI output.
+  <info>--no-ansi</info>           Disable ANSI output.
   <info>--no-interaction</info> <info>-n</info> Do not ask any interactive question.

+ 2 - 1
tests/Symfony/Tests/Component/Console/Fixtures/application_run1.txt

@@ -8,7 +8,8 @@ Options:
   --quiet          -q Do not output any message.
   --verbose        -v Increase verbosity of messages.
   --version        -V Display this program version.
-  --ansi           -a Force ANSI output.
+  --ansi              Force ANSI output.
+  --no-ansi           Disable ANSI output.
   --no-interaction -n Do not ask any interactive question.
 
 Available commands:

+ 2 - 1
tests/Symfony/Tests/Component/Console/Fixtures/application_run2.txt

@@ -11,7 +11,8 @@ Options:
  --quiet (-q) Do not output any message.
  --verbose (-v) Increase verbosity of messages.
  --version (-V) Display this program version.
- --ansi (-a) Force ANSI output.
+ --ansi Force ANSI output.
+ --no-ansi Disable ANSI output.
  --no-interaction (-n) Do not ask any interactive question.
 
 Help:

+ 2 - 1
tests/Symfony/Tests/Component/Console/Fixtures/command_astext.txt

@@ -10,7 +10,8 @@
  <info>--quiet</info> (-q) Do not output any message.
  <info>--verbose</info> (-v) Increase verbosity of messages.
  <info>--version</info> (-V) Display this program version.
- <info>--ansi</info> (-a) Force ANSI output.
+ <info>--ansi</info> Force ANSI output.
+ <info>--no-ansi</info> Disable ANSI output.
  <info>--no-interaction</info> (-n) Do not ask any interactive question.
 
 <comment>Help:</comment>

+ 4 - 1
tests/Symfony/Tests/Component/Console/Fixtures/command_asxml.txt

@@ -25,9 +25,12 @@
     <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
       <description>Display this program version.</description>
     </option>
-    <option name="--ansi" shortcut="-a" accept_value="0" is_value_required="0" is_multiple="0">
+    <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
       <description>Force ANSI output.</description>
     </option>
+    <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
+      <description>Disable ANSI output.</description>
+    </option>
     <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
       <description>Do not ask any interactive question.</description>
     </option>