This repository has been archived on 2025-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
drupalcampbristol/vendor/consolidation/robo/scripts/composer/ScriptHandler.php
2018-11-23 12:29:20 +00:00

59 lines
1.4 KiB
PHP

<?php
/**
* @file
* Contains \Robo\composer\ScriptHandler.
*/
namespace Robo\composer;
use Composer\Script\Event;
use Symfony\Component\Filesystem\Filesystem;
class ScriptHandler
{
/**
* Run prior to `composer installl` when a composer.lock is present.
* @param Event $event
*/
public static function checkDependencies(Event $event)
{
if (version_compare(PHP_VERSION, '5.6.0') < 0) {
static::checkDependenciesFor55();
}
}
/**
* Check to see if the dependencies in composer.lock are compatible
* with php 5.5.
*/
protected static function checkDependenciesFor55()
{
$fs = new Filesystem();
if (!$fs->exists('composer.lock')) {
return;
}
$composerLockContents = file_get_contents('composer.lock');
if (preg_match('#"php":.*(5\.6)#', $composerLockContents)) {
static::fixDependenciesFor55();
}
}
protected static function fixDependenciesFor55()
{
$fs = new Filesystem();
$status = 0;
$fs->remove('composer.lock');
// Composer has already read our composer.json file, so we will
// need to run in a new process to fix things up.
passthru('composer install --ansi', $status);
// Don't continue with the initial 'composer install' command
exit($status);
}
}