|
|
|
<?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\Command\BuiltIn;
|
|
|
|
|
|
|
|
use Mage\Command\AbstractCommand;
|
|
|
|
use Mage\Console;
|
|
|
|
use Mage\Compiler;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Command for Compile Magallanes into a PHAR executable
|
|
|
|
*
|
|
|
|
* @author Ismael Ambrosi<ismaambrosi@gmail.com>
|
|
|
|
*/
|
|
|
|
class CompileCommand extends AbstractCommand
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var Compiler
|
|
|
|
*/
|
|
|
|
private $compiler;
|
|
|
|
|
|
|
|
public function __construct(Compiler $compiler = null)
|
|
|
|
{
|
|
|
|
if ($compiler === null) {
|
|
|
|
$compiler = new Compiler();
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->compiler = $compiler;
|
|
|
|
|
|
|
|
$this->setName('Compile command')
|
|
|
|
->setHelpMessage('Compiles Magallanes to mage.phar file')
|
|
|
|
->setSyntaxMessage('mage compile');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @see \Mage\Compile::compile()
|
|
|
|
*/
|
|
|
|
public function run()
|
|
|
|
{
|
|
|
|
if (ini_get('phar.readonly')) {
|
|
|
|
Console::output(
|
|
|
|
'The <purple>php.ini</purple> variable <light_red>phar.readonly</light_red>'
|
|
|
|
. ' must be <yellow>Off</yellow>.',
|
|
|
|
1,
|
|
|
|
2
|
|
|
|
);
|
|
|
|
|
|
|
|
return 200;
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->compiler->compile();
|
|
|
|
|
|
|
|
Console::output(
|
|
|
|
'<light_purple>mage.phar</light_purple> compiled <light_green>successfully</light_green>',
|
|
|
|
0,
|
|
|
|
2
|
|
|
|
);
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|