| 
<?php$dist = dirname(__DIR__).'/dist';
 if (!is_dir($dist)) {
 mkdir($dist, 0755);
 }
 if (file_exists($dist.'/random_compat.phar')) {
 unlink($dist.'/random_compat.phar');
 }
 $phar = new Phar(
 $dist.'/random_compat.phar',
 FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::KEY_AS_FILENAME,
 'random_compat.phar'
 );
 rename(
 dirname(__DIR__).'/lib/random.php',
 dirname(__DIR__).'/lib/index.php'
 );
 $phar->buildFromDirectory(dirname(__DIR__).'/lib');
 rename(
 dirname(__DIR__).'/lib/index.php',
 dirname(__DIR__).'/lib/random.php'
 );
 
 /**
 * If we pass an (optional) path to a private key as a second argument, we will
 * sign the Phar with OpenSSL.
 *
 * If you leave this out, it will produce an unsigned .phar!
 */
 if ($argc > 1) {
 if (!@is_readable($argv[1])) {
 echo 'Could not read the private key file:', $argv[1], "\n";
 exit(255);
 }
 $pkeyFile = file_get_contents($argv[1]);
 
 $private = openssl_get_privatekey($pkeyFile);
 if ($private !== false) {
 $pkey = '';
 openssl_pkey_export($private, $pkey);
 $phar->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
 
 /**
 * Save the corresponding public key to the file
 */
 if (!@is_readable($dist.'/random_compat.phar.pubkey')) {
 $details = openssl_pkey_get_details($private);
 file_put_contents(
 $dist.'/random_compat.phar.pubkey',
 $details['key']
 );
 }
 } else {
 echo 'An error occurred reading the private key from OpenSSL.', "\n";
 exit(255);
 }
 }
 
 |