63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?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();
							 |