You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.3 KiB
62 lines
1.3 KiB
<?php |
|
|
|
# required: PHP 5.3+ and zlib extension |
|
|
|
// ini option check |
|
if (ini_get('phar.readonly')) { |
|
echo "php.ini: set the 'phar.readonly' option to 0 to enable phar creation\n"; |
|
exit(1); |
|
} |
|
|
|
// output name |
|
$pharName = 'Matrix.phar'; |
|
|
|
// target folder |
|
$sourceDir = __DIR__ . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR; |
|
|
|
// default meta information |
|
$metaData = array( |
|
'Author' => 'Mark Baker <mark@lange.demon.co.uk>', |
|
'Description' => 'PHP Class for working with Matrix numbers', |
|
'Copyright' => 'Mark Baker (c) 2013-' . date('Y'), |
|
'Timestamp' => time(), |
|
'Version' => '0.1.0', |
|
'Date' => date('Y-m-d') |
|
); |
|
|
|
// cleanup |
|
if (file_exists($pharName)) { |
|
echo "Removed: {$pharName}\n"; |
|
unlink($pharName); |
|
} |
|
|
|
echo "Building phar file...\n"; |
|
|
|
// the phar object |
|
$phar = new Phar($pharName, null, 'Matrix'); |
|
$phar->buildFromDirectory($sourceDir); |
|
$phar->setStub( |
|
<<<'EOT' |
|
<?php |
|
spl_autoload_register(function ($className) { |
|
include 'phar://' . $className . '.php'; |
|
}); |
|
|
|
try { |
|
Phar::mapPhar(); |
|
} catch (PharException $e) { |
|
error_log($e->getMessage()); |
|
exit(1); |
|
} |
|
|
|
include 'phar://functions/sqrt.php'; |
|
|
|
__HALT_COMPILER(); |
|
EOT |
|
); |
|
$phar->setMetadata($metaData); |
|
$phar->compressFiles(Phar::GZ); |
|
|
|
echo "Complete.\n"; |
|
|
|
exit();
|
|
|