phpcheckstyle
phpcheckstyle copied to clipboard
--exclude is being ignored
I'm setting up a test environment for my upcoming project (in CodeIgniter4, if it's relevant) and stumbled upon this weird behavior. I execute the following (in my CI4 project folder):
php /path/to/run.php --config /path/to/my.cfg.xml --src app/Views/ --exclude app/Views/welcome_message.php
But the excluded file is still parsed:
If I exclude the relative path portion of the exclusion, it does skip the file (but I assume it would also exclude other unintended files):
php /path/to/run.php --config /path/to/my.cfg.xml --src app/Views/ --exclude welcome_message.php
After searching the reported issues, I thought it could have something to do with Issue 78, so I tried executing from the installation directory:
php run.php --config /path/to/my.cfg.xml --src /full/path/to/app/Views/ --exclude /full/path/to/app/Views/welcome_message.php
And it still fails to exclude the indicated file.
Tested in:
- Version 0.14.8
- Commit b16777125e2023efbf47e5576cda32443091a9fd
With PHP 8.0.25. Manual installation.
Hello,
It's probably not clearly documented, but yes the "--exclude" il relative to the "--src" path.
So the correct way to exclure "welcome_message" is as you guessed :
php /path/to/run.php --config /path/to/my.cfg.xml --src app/Views/ --exclude welcome_message.php
But you are correct, it could exclude some files named "welcome_message.php" in any subdirectory. I've just made a few tests and I can reproduce the problem. I think a cleaner way to this would be to accept regular expressions (with **/*.php as ANT would do), but i'm not sure to have the time to investigate further.
Thanks for the reply. That explains a lot.
Though now I'm curious: if multiple --src are used, would --exclude be relative to any of the --src or just the last one?
Good question, it should work with every src, but I havn't tried.