CLI tools to manage output errors formatting for junit, checkstyle, teamcity, gitlab and github error formats.
Have formatters that I can re-use in projects to format errors. Some code is copied from phpstan. See #4122
use CodeLts\CliTools\Error; use CodeLts\CliTools\AnalysisResult; use CodeLts\CliTools\OutputFormat; use CodeLts\CliTools\Exceptions\FormatNotFoundException; // if the value is from an user input // Will throw FormatNotFoundException // See valid formats at OutputFormat::VALID_OUTPUT_FORMATS OutputFormat::checkOutputFormatIsValid('notValidFormat'); $fileSpecificErrors = [ new Error( 'My error message', '/file/path/to/File.php', 15 // Line number ), ]; $notFileSpecificErrors = [ 'Just an error message', ]; $internalErrors = [ 'Oops the internal engine did crash !', ]; $warnings = [ 'I warn you that most of this code is tested', 'Contributions are very welcome', ]; $analysisResult = new AnalysisResult( $fileSpecificErrors, $notFileSpecificErrors, $internalErrors, $warnings ); OutputFormat::displayUserChoiceFormat( OutputFormat::OUTPUT_FORMAT_TABLE,// The phpstan table error format, you can have a lot more formats in OutputFormat::VALID_OUTPUT_FORMATS $analysisResult, $this->sourceRootDirectory,// can be null, if null the error paths will not be pretty and will be displayed as given $this->output // Implement CodeLts\CliTools\Output or use CodeLts\CliTools\Symfony\SymfonyOutput );use CodeLts\CliTools\File\FileReader; use CodeLts\CliTools\File\FileWriter; $fileName = 'myFile.txt'; FileWriter::write( $fileName, 'Some data, blob, blob, blob.' ); FileReader::read($fileName);// -> Some data, blob, blob, blob.use CodeLts\CliTools\File\AnsiEscapeSequences; $this->output->writeFormatted(AnsiEscapeSequences::ERASE_TO_LINE_END);use CodeLts\CliTools\Utils; // See supported CIs at https://github.com/OndraM/ci-detector#supported-continuous-integration-servers Utils::isCiDetected(); // true of false