annotate vendor/squizlabs/php_codesniffer/scripts/build-phar.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 #!/usr/bin/env php
Chris@0 2 <?php
Chris@0 3 /**
Chris@0 4 * Build a PHPCS phar.
Chris@0 5 *
Chris@0 6 * PHP version 5
Chris@0 7 *
Chris@0 8 * @category PHP
Chris@0 9 * @package PHP_CodeSniffer
Chris@0 10 * @author Benjamin Pearson <bpearson@squiz.com.au>
Chris@0 11 * @author Greg Sherwood <gsherwood@squiz.net>
Chris@0 12 * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
Chris@0 13 * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
Chris@0 14 * @link http://pear.php.net/package/PHP_CodeSniffer
Chris@0 15 */
Chris@0 16
Chris@0 17 error_reporting(E_ALL | E_STRICT);
Chris@0 18
Chris@0 19 if (ini_get('phar.readonly') === '1') {
Chris@0 20 echo 'Unable to build, phar.readonly in php.ini is set to read only.'.PHP_EOL;
Chris@0 21 exit(1);
Chris@0 22 }
Chris@0 23
Chris@17 24 $scripts = [
Chris@17 25 'phpcs',
Chris@17 26 'phpcbf',
Chris@17 27 ];
Chris@0 28
Chris@0 29 foreach ($scripts as $script) {
Chris@0 30 echo "Building $script phar".PHP_EOL;
Chris@0 31
Chris@17 32 $pharName = $script.'.phar';
Chris@17 33 $pharFile = getcwd().'/'.$pharName;
Chris@0 34 echo "\t=> $pharFile".PHP_EOL;
Chris@0 35 if (file_exists($pharFile) === true) {
Chris@0 36 echo "\t** file exists, removing **".PHP_EOL;
Chris@0 37 unlink($pharFile);
Chris@0 38 }
Chris@0 39
Chris@17 40 $phar = new Phar($pharFile, 0, $pharName);
Chris@0 41
Chris@17 42 /*
Chris@17 43 Add the files.
Chris@17 44 */
Chris@17 45
Chris@17 46 echo "\t=> adding files... ";
Chris@17 47
Chris@17 48 $srcDir = realpath(__DIR__.'/../src');
Chris@17 49 $srcDirLen = strlen($srcDir);
Chris@17 50
Chris@17 51 $rdi = new \RecursiveDirectoryIterator($srcDir, \RecursiveDirectoryIterator::FOLLOW_SYMLINKS);
Chris@17 52 $di = new \RecursiveIteratorIterator($rdi, 0, \RecursiveIteratorIterator::CATCH_GET_CHILD);
Chris@17 53
Chris@17 54 foreach ($di as $file) {
Chris@17 55 $filename = $file->getFilename();
Chris@17 56
Chris@17 57 // Skip hidden files.
Chris@17 58 if (substr($filename, 0, 1) === '.') {
Chris@17 59 continue;
Chris@17 60 }
Chris@17 61
Chris@17 62 $fullpath = $file->getPathname();
Chris@17 63 if (strpos($fullpath, '/Tests/') !== false) {
Chris@17 64 continue;
Chris@17 65 }
Chris@17 66
Chris@17 67 $path = 'src'.substr($fullpath, $srcDirLen);
Chris@17 68
Chris@17 69 $phar->addFromString($path, php_strip_whitespace($fullpath));
Chris@17 70 }
Chris@17 71
Chris@17 72 // Add autoloader.
Chris@17 73 $phar->addFromString('autoload.php', php_strip_whitespace(realpath(__DIR__.'/../autoload.php')));
Chris@17 74
Chris@17 75 // Add licence file.
Chris@17 76 $phar->addFromString('licence.txt', php_strip_whitespace(realpath(__DIR__.'/../licence.txt')));
Chris@17 77
Chris@0 78 echo 'done'.PHP_EOL;
Chris@0 79
Chris@17 80 /*
Chris@17 81 Add the stub.
Chris@17 82 */
Chris@17 83
Chris@0 84 echo "\t=> adding stub... ";
Chris@0 85 $stub = '#!/usr/bin/env php'."\n";
Chris@0 86 $stub .= '<?php'."\n";
Chris@17 87 $stub .= 'Phar::mapPhar(\''.$pharName.'\');'."\n";
Chris@17 88 $stub .= 'require_once "phar://'.$pharName.'/autoload.php";'."\n";
Chris@17 89 $stub .= '$runner = new PHP_CodeSniffer\Runner();'."\n";
Chris@17 90 $stub .= '$exitCode = $runner->run'.$script.'();'."\n";
Chris@17 91 $stub .= 'exit($exitCode);'."\n";
Chris@0 92 $stub .= '__HALT_COMPILER();';
Chris@0 93 $phar->setStub($stub);
Chris@17 94
Chris@0 95 echo 'done'.PHP_EOL;
Chris@0 96 }//end foreach