mirror of
				https://github.com/hauke68/Magallanes.git
				synced 2025-11-04 09:00:18 +01:00 
			
		
		
		
	Tweaks on Compile.
This commit is contained in:
		
							parent
							
								
									a41d8d0be9
								
							
						
					
					
						commit
						426858cb00
					
				@ -12,7 +12,10 @@ namespace Mage\Command\BuiltIn;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
use Mage\Command\AbstractCommand;
 | 
					use Mage\Command\AbstractCommand;
 | 
				
			||||||
use Mage\Console;
 | 
					use Mage\Console;
 | 
				
			||||||
use Mage\Compiler;
 | 
					
 | 
				
			||||||
 | 
					use Phar;
 | 
				
			||||||
 | 
					use RecursiveIteratorIterator;
 | 
				
			||||||
 | 
					use RecursiveDirectoryIterator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Exception;
 | 
					use Exception;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -24,14 +27,48 @@ use Exception;
 | 
				
			|||||||
class CompileCommand extends AbstractCommand
 | 
					class CompileCommand extends AbstractCommand
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @see \Mage\Compile::compile()
 | 
					     * Compiles Magallanes into a PHAR executable
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function run ()
 | 
					    public function run ()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Console::output('Compiling <dark_gray>Magallanes</dark_gray>... ', 1, 0);
 | 
					    	if (ini_get('phar.readonly')) {
 | 
				
			||||||
 | 
					    		Console::output('The <purple>php.ini</purple> variable <light_red>phar.readonly</light_red> must be enabled.', 1, 2);
 | 
				
			||||||
 | 
					    		return;
 | 
				
			||||||
 | 
					    	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $compiler = new Compiler;
 | 
					        Console::output('Compiling <dark_gray>Magallanes</dark_gray>... ', 1, 0);
 | 
				
			||||||
        $compiler->compile();
 | 
					        $file = 'mage.phar';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (file_exists($file)) {
 | 
				
			||||||
 | 
					            unlink($file);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $phar = new Phar($file, 0, 'mage.phar');
 | 
				
			||||||
 | 
					        $phar->setSignatureAlgorithm(Phar::SHA1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $phar->startBuffering();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__), RecursiveIteratorIterator::CHILD_FIRST);
 | 
				
			||||||
 | 
					        /** @var $path SplFileInfo */
 | 
				
			||||||
 | 
					        foreach ($iterator as $path) {
 | 
				
			||||||
 | 
					            if ($path->isFile()) {
 | 
				
			||||||
 | 
					                $phar->addFromString(str_replace(dirname(__DIR__).'/', '', $path->getPathname()), file_get_contents($path));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $phar->addFromString('mage', str_replace(
 | 
				
			||||||
 | 
					            '$baseDir = dirname(dirname(__FILE__));',
 | 
				
			||||||
 | 
					            '$baseDir = __DIR__;',
 | 
				
			||||||
 | 
					            file_get_contents(__DIR__.'/../bin/mage')
 | 
				
			||||||
 | 
					        ));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $phar->setStub("#!/usr/bin/env php\n<?php Phar::mapPhar('mage.phar'); require 'phar://mage.phar/mage'; __HALT_COMPILER();");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $phar->stopBuffering();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        unset($phar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chmod($file, 0755);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Console::output('Mage compiled successfully');
 | 
					        Console::output('Mage compiled successfully');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,63 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * This file is part of the Magallanes package.
 | 
					 | 
				
			||||||
*
 | 
					 | 
				
			||||||
* (c) Andrés Montañez <andres@andresmontanez.com>
 | 
					 | 
				
			||||||
*
 | 
					 | 
				
			||||||
* For the full copyright and license information, please view the LICENSE
 | 
					 | 
				
			||||||
* file that was distributed with this source code.
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Mage;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Phar;
 | 
					 | 
				
			||||||
use RecursiveIteratorIterator;
 | 
					 | 
				
			||||||
use RecursiveDirectoryIterator;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Compiles the library into a .phar file
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @author Ismael Ambrosi<ismaambrosi@gmail.com>
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
class Compiler
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Compiles the library
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param string $file
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function compile($file = 'mage.phar')
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if (file_exists($file)) {
 | 
					 | 
				
			||||||
            unlink($file);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $phar = new Phar($file, 0, 'mage.phar');
 | 
					 | 
				
			||||||
        $phar->setSignatureAlgorithm(Phar::SHA1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $phar->startBuffering();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__), RecursiveIteratorIterator::CHILD_FIRST);
 | 
					 | 
				
			||||||
        /** @var $path SplFileInfo */
 | 
					 | 
				
			||||||
        foreach ($iterator as $path) {
 | 
					 | 
				
			||||||
            if ($path->isFile()) {
 | 
					 | 
				
			||||||
                $phar->addFromString(str_replace(dirname(__DIR__).'/', '', $path->getPathname()), file_get_contents($path));
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $phar->addFromString('mage', str_replace(
 | 
					 | 
				
			||||||
            '$baseDir = dirname(dirname(__FILE__));',
 | 
					 | 
				
			||||||
            '$baseDir = __DIR__;',
 | 
					 | 
				
			||||||
            file_get_contents(__DIR__.'/../bin/mage')
 | 
					 | 
				
			||||||
        ));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $phar->setStub("#!/usr/bin/env php\n<?php Phar::mapPhar('mage.phar'); require 'phar://mage.phar/mage'; __HALT_COMPILER();");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $phar->stopBuffering();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        unset($phar);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        chmod($file, 0755);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user