Chris@0: #!/usr/bin/env php Chris@0: Chris@0: * @author Greg Sherwood Chris@0: * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) Chris@0: * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence Chris@0: * @link http://pear.php.net/package/PHP_CodeSniffer Chris@0: */ Chris@0: Chris@0: error_reporting(E_ALL | E_STRICT); Chris@0: Chris@0: if (ini_get('phar.readonly') === '1') { Chris@0: echo 'Unable to build, phar.readonly in php.ini is set to read only.'.PHP_EOL; Chris@0: exit(1); Chris@0: } Chris@0: Chris@17: $scripts = [ Chris@17: 'phpcs', Chris@17: 'phpcbf', Chris@17: ]; Chris@0: Chris@0: foreach ($scripts as $script) { Chris@0: echo "Building $script phar".PHP_EOL; Chris@0: Chris@17: $pharName = $script.'.phar'; Chris@17: $pharFile = getcwd().'/'.$pharName; Chris@0: echo "\t=> $pharFile".PHP_EOL; Chris@0: if (file_exists($pharFile) === true) { Chris@0: echo "\t** file exists, removing **".PHP_EOL; Chris@0: unlink($pharFile); Chris@0: } Chris@0: Chris@17: $phar = new Phar($pharFile, 0, $pharName); Chris@0: Chris@17: /* Chris@17: Add the files. Chris@17: */ Chris@17: Chris@17: echo "\t=> adding files... "; Chris@17: Chris@17: $srcDir = realpath(__DIR__.'/../src'); Chris@17: $srcDirLen = strlen($srcDir); Chris@17: Chris@17: $rdi = new \RecursiveDirectoryIterator($srcDir, \RecursiveDirectoryIterator::FOLLOW_SYMLINKS); Chris@17: $di = new \RecursiveIteratorIterator($rdi, 0, \RecursiveIteratorIterator::CATCH_GET_CHILD); Chris@17: Chris@17: foreach ($di as $file) { Chris@17: $filename = $file->getFilename(); Chris@17: Chris@17: // Skip hidden files. Chris@17: if (substr($filename, 0, 1) === '.') { Chris@17: continue; Chris@17: } Chris@17: Chris@17: $fullpath = $file->getPathname(); Chris@17: if (strpos($fullpath, '/Tests/') !== false) { Chris@17: continue; Chris@17: } Chris@17: Chris@17: $path = 'src'.substr($fullpath, $srcDirLen); Chris@17: Chris@17: $phar->addFromString($path, php_strip_whitespace($fullpath)); Chris@17: } Chris@17: Chris@17: // Add autoloader. Chris@17: $phar->addFromString('autoload.php', php_strip_whitespace(realpath(__DIR__.'/../autoload.php'))); Chris@17: Chris@17: // Add licence file. Chris@17: $phar->addFromString('licence.txt', php_strip_whitespace(realpath(__DIR__.'/../licence.txt'))); Chris@17: Chris@0: echo 'done'.PHP_EOL; Chris@0: Chris@17: /* Chris@17: Add the stub. Chris@17: */ Chris@17: Chris@0: echo "\t=> adding stub... "; Chris@0: $stub = '#!/usr/bin/env php'."\n"; Chris@0: $stub .= 'run'.$script.'();'."\n"; Chris@17: $stub .= 'exit($exitCode);'."\n"; Chris@0: $stub .= '__HALT_COMPILER();'; Chris@0: $phar->setStub($stub); Chris@17: Chris@0: echo 'done'.PHP_EOL; Chris@0: }//end foreach