38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Incenteev\ParameterHandler;
|
|
|
|
use Composer\Script\Event;
|
|
|
|
class ScriptHandler
|
|
{
|
|
public static function buildParameters(Event $event)
|
|
{
|
|
$extras = $event->getComposer()->getPackage()->getExtra();
|
|
|
|
if (!isset($extras['incenteev-parameters'])) {
|
|
throw new \InvalidArgumentException('The parameter handler needs to be configured through the extra.incenteev-parameters setting.');
|
|
}
|
|
|
|
$configs = $extras['incenteev-parameters'];
|
|
|
|
if (!is_array($configs)) {
|
|
throw new \InvalidArgumentException('The extra.incenteev-parameters setting must be an array or a configuration object.');
|
|
}
|
|
|
|
if (array_keys($configs) !== range(0, count($configs) - 1)) {
|
|
$configs = array($configs);
|
|
}
|
|
|
|
$processor = new Processor($event->getIO());
|
|
|
|
foreach ($configs as $config) {
|
|
if (!is_array($config)) {
|
|
throw new \InvalidArgumentException('The extra.incenteev-parameters setting must be an array of configuration objects.');
|
|
}
|
|
|
|
$processor->processFile($config);
|
|
}
|
|
}
|
|
}
|