mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
Merge branch 'MDL-50611-master' of git://github.com/LukeCarrier/moodle
This commit is contained in:
commit
8cb6117867
@ -157,7 +157,7 @@ class behat_command {
|
||||
|
||||
// Returning composer error code to avoid conflicts with behat and moodle error codes.
|
||||
self::output_msg(get_string('errorcomposer', 'tool_behat'));
|
||||
return BEHAT_EXITCODE_COMPOSER;
|
||||
return TESTING_EXITCODE_COMPOSER;
|
||||
}
|
||||
|
||||
// Behat test command.
|
||||
@ -167,7 +167,7 @@ class behat_command {
|
||||
|
||||
// Returning composer error code to avoid conflicts with behat and moodle error codes.
|
||||
self::output_msg(get_string('errorbehatcommand', 'tool_behat', self::get_behat_command()));
|
||||
return BEHAT_EXITCODE_COMPOSER;
|
||||
return TESTING_EXITCODE_COMPOSER;
|
||||
}
|
||||
|
||||
// No empty values.
|
||||
|
@ -38,7 +38,6 @@ define('BEHAT_EXITCODE_REQUIREMENT', 251);
|
||||
define('BEHAT_EXITCODE_PERMISSIONS', 252);
|
||||
define('BEHAT_EXITCODE_REINSTALL', 253);
|
||||
define('BEHAT_EXITCODE_INSTALL', 254);
|
||||
define('BEHAT_EXITCODE_COMPOSER', 255);
|
||||
define('BEHAT_EXITCODE_INSTALLED', 256);
|
||||
|
||||
/**
|
||||
@ -458,4 +457,4 @@ function cli_execute_parallel($cmds, $cwd = null) {
|
||||
}
|
||||
}
|
||||
return $processes;
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,13 @@
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
/**
|
||||
* Composer error exit status.
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
define('TESTING_EXITCODE_COMPOSER', 255);
|
||||
|
||||
/**
|
||||
* Returns relative path against current working directory,
|
||||
* to be used for shell execution hints.
|
||||
@ -170,22 +177,45 @@ function testing_error($errorcode, $text = '') {
|
||||
* @return void exit() if something goes wrong
|
||||
*/
|
||||
function testing_update_composer_dependencies() {
|
||||
|
||||
// To restore the value after finishing.
|
||||
$cwd = getcwd();
|
||||
|
||||
// Dirroot.
|
||||
chdir(__DIR__ . '/../..');
|
||||
// Set some paths.
|
||||
$dirroot = dirname(dirname(__DIR__));
|
||||
$composerpath = $dirroot . DIRECTORY_SEPARATOR . 'composer.phar';
|
||||
$composerurl = 'https://getcomposer.org/composer.phar';
|
||||
|
||||
// Download composer.phar if we can.
|
||||
if (!file_exists(__DIR__ . '/../../composer.phar')) {
|
||||
passthru("curl http://getcomposer.org/installer | php", $code);
|
||||
if ($code != 0) {
|
||||
exit($code);
|
||||
// Switch to Moodle's dirroot for easier path handling.
|
||||
chdir($dirroot);
|
||||
|
||||
// Download or update composer.phar. Unfortunately we can't use the curl
|
||||
// class in filelib.php as we're running within one of the test platforms.
|
||||
if (!file_exists($composerpath)) {
|
||||
$file = @fopen($composerpath, 'w+');
|
||||
if ($file === false) {
|
||||
$errordetails = error_get_last();
|
||||
$error = sprintf("Unable to open composer.phar\nPHP error: %s",
|
||||
$errordetails['message']);
|
||||
testing_error(TESTING_EXITCODE_COMPOSER, $error);
|
||||
}
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $composerurl);
|
||||
curl_setopt($curl, CURLOPT_FILE, $file);
|
||||
$result = curl_exec($curl);
|
||||
|
||||
$curlerrno = curl_errno($curl);
|
||||
$curlerror = curl_error($curl);
|
||||
|
||||
curl_close($curl);
|
||||
fclose($file);
|
||||
|
||||
if (!$result) {
|
||||
$error = sprintf("Unable to download composer.phar\ncURL error (%d): %s",
|
||||
$curlerrno, $curlerror);
|
||||
testing_error(TESTING_EXITCODE_COMPOSER, $error);
|
||||
}
|
||||
} else {
|
||||
|
||||
// If it is already there update the installer.
|
||||
passthru("php composer.phar self-update", $code);
|
||||
if ($code != 0) {
|
||||
exit($code);
|
||||
@ -198,5 +228,6 @@ function testing_update_composer_dependencies() {
|
||||
exit($code);
|
||||
}
|
||||
|
||||
// Return to our original location.
|
||||
chdir($cwd);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user