45 lines
1.6 KiB
PHP
45 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace WP_Ultimo\Dependencies;
|
|
|
|
$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);
|
|
}
|
|
}
|