public function composer_run()
{
$composer_cache = mw_cache_path() . 'composer' . DS;
$vendor_cache = normalize_path($composer_cache . 'vendor', true);
$composer_path = normalize_path(base_path() . '/', false);
$composer_json = normalize_path(base_path() . DS . 'composer.json', false);
$composer_json_cache = normalize_path($composer_cache . DS . 'composer.json', false);
if (!is_dir($vendor_cache)) {
mkdir_recursive($vendor_cache);
}
if (is_file($composer_json)) {
copy($composer_json, $composer_json_cache);
}
putenv('COMPOSER_VENDOR_DIR=' . $vendor_cache);
putenv('COMPOSER_NO_INTERACTION=1');
$this->_log_msg('Composer update...');
$runner = new \Microweber\Utils\ComposerUpdate($composer_cache);
$config = array('prepend-autoloader' => false, 'no-install' => true, 'no-scripts' => true, 'no-plugins' => true, 'no-progress' => true, 'preferred-install' => 'dist', 'no-dev' => true, 'no-custom-installers' => true, 'no-autoloader' => true);
$out = $runner->run($config);
if ($out == 2) {
return array('error' => 'Error resolving Composer dependencies');
} elseif ($out == 1) {
return array('error' => 'Composer has an unknown error');
} elseif ($out === 0) {
return array('move_vendor' => 1, 'working' => 1, 'message' => 'Composer has completed');
} else {
return array('success' => 1, 'message' => $out);
}
}