Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
223 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of PHP CS Fixer. | ||
* | ||
* (c) Fabien Potencier <fabien@symfony.com> | ||
* Dariusz Rumiński <dariusz.ruminski@gmail.com> | ||
* | ||
* This source file is subject to the MIT license that is bundled | ||
* with this source code in the file LICENSE. | ||
*/ | ||
|
||
namespace PhpCsFixer\Console\Command; | ||
|
||
use PhpCsFixer\Config; | ||
use PhpCsFixer\ConfigInterface; | ||
use PhpCsFixer\Console\ConfigurationResolver; | ||
use PhpCsFixer\ToolInfoInterface; | ||
use SplFileInfo; | ||
use Symfony\Component\Console\Command\Command; | ||
use Symfony\Component\Console\Input\InputInterface; | ||
use Symfony\Component\Console\Input\InputOption; | ||
use Symfony\Component\Console\Output\OutputInterface; | ||
|
||
/** | ||
* @author Markus Staab <markus.staab@redaxo.org> | ||
* | ||
* @internal | ||
*/ | ||
final class ListFilesCommand extends Command | ||
{ | ||
protected static $defaultName = 'list-files'; | ||
|
||
/** | ||
* @var ConfigInterface | ||
*/ | ||
private $defaultConfig; | ||
|
||
/** | ||
* @var ToolInfoInterface | ||
*/ | ||
private $toolInfo; | ||
|
||
public function __construct(ToolInfoInterface $toolInfo) | ||
{ | ||
parent::__construct(); | ||
|
||
$this->defaultConfig = new Config(); | ||
$this->toolInfo = $toolInfo; | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
protected function configure() | ||
{ | ||
$this | ||
->setDefinition( | ||
[ | ||
new InputOption('config', '', InputOption::VALUE_REQUIRED, 'The path to a .php-cs-fixer.php file.'), | ||
] | ||
) | ||
->setDescription('List all files being fixed by the given config.') | ||
; | ||
} | ||
|
||
protected function execute(InputInterface $input, OutputInterface $output) | ||
{ | ||
$passedConfig = $input->getOption('config'); | ||
$cwd = getcwd(); | ||
|
||
$resolver = new ConfigurationResolver( | ||
$this->defaultConfig, | ||
[ | ||
'config' => $passedConfig, | ||
], | ||
getcwd(), | ||
$this->toolInfo | ||
); | ||
|
||
$finder = $resolver->getFinder(); | ||
|
||
/** @var SplFileInfo $file */ | ||
foreach ($finder as $file) { | ||
if ($file->isFile()) { | ||
$relativePath = str_replace($cwd, '.', $file->getRealPath()); | ||
// unify directory separators across operating system | ||
$relativePath = str_replace('/', \DIRECTORY_SEPARATOR, $relativePath); | ||
|
||
$output->writeln(escapeshellarg($relativePath)); | ||
} | ||
} | ||
|
||
return 0; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of PHP CS Fixer. | ||
* | ||
* (c) Fabien Potencier <fabien@symfony.com> | ||
* Dariusz Rumiński <dariusz.ruminski@gmail.com> | ||
* | ||
* This source file is subject to the MIT license that is bundled | ||
* with this source code in the file LICENSE. | ||
*/ | ||
|
||
namespace PhpCsFixer\Tests\Console\Command; | ||
|
||
use PhpCsFixer\Console\Application; | ||
use PhpCsFixer\Console\Command\ListFilesCommand; | ||
use PhpCsFixer\Tests\TestCase; | ||
use PhpCsFixer\ToolInfo; | ||
use Symfony\Component\Console\Tester\CommandTester; | ||
|
||
/** | ||
* @internal | ||
* | ||
* @covers \PhpCsFixer\Console\Command\ListFilesCommand | ||
*/ | ||
final class ListFilesCommandTest extends TestCase | ||
{ | ||
public function testListWithConfig() | ||
{ | ||
$commandTester = $this->doTestExecute([ | ||
'--config' => __DIR__.'/../../Fixtures/ListFilesTest/.php-cs-fixer.php', | ||
]); | ||
|
||
$expectedPath = './tests/Fixtures/ListFilesTest/needs-fixing/needs-fixing.php'; | ||
// make the test also work on windows | ||
$expectedPath = str_replace('/', \DIRECTORY_SEPARATOR, $expectedPath); | ||
|
||
static::assertSame(escapeshellarg($expectedPath).PHP_EOL, $commandTester->getDisplay()); | ||
} | ||
|
||
/** | ||
* @return CommandTester | ||
*/ | ||
private function doTestExecute(array $arguments) | ||
{ | ||
$application = new Application(); | ||
$application->add(new ListFilesCommand(new ToolInfo())); | ||
|
||
$command = $application->find('list-files'); | ||
$commandTester = new CommandTester($command); | ||
|
||
$commandTester->execute($arguments); | ||
|
||
return $commandTester; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<?php | ||
|
||
$finder = PhpCsFixer\Finder::create() | ||
->in([ | ||
__DIR__.'/needs-fixing/', | ||
]) | ||
->exclude([ | ||
__DIR__.'/excluded/', | ||
]) | ||
; | ||
|
||
$config = new PhpCsFixer\Config(); | ||
return $config | ||
->setUsingCache(false) | ||
->setRules([ | ||
'@Symfony' => true, | ||
]) | ||
->setRiskyAllowed(true) | ||
->setFinder($finder) | ||
; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<?php | ||
|
||
function abc() {} | ||
|
||
function def() | ||
{ | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<?php | ||
|
||
function abc() {} | ||
|
||
function def() | ||
{ | ||
|
||
} |