Improve extension support

This commit is contained in:
Shivam Mathur
2020-03-14 07:42:02 +05:30
parent 0da52b1327
commit 6a4159ba98
4 changed files with 96 additions and 51 deletions

67
dist/index.js vendored
View File

@ -1177,6 +1177,7 @@ function extensionArray(extension_csv) {
.map(function (extension) {
return extension
.trim()
.toLowerCase()
.replace('php-', '')
.replace('php_', '');
})
@ -2645,11 +2646,11 @@ function addExtensionDarwin(extension_csv, version, pipe) {
let script = '\n';
yield utils.asyncForEach(extensions, function (extension) {
return __awaiter(this, void 0, void 0, function* () {
extension = extension.toLowerCase();
const version_extension = version + extension;
const [extension_name, stability] = extension.split('-');
const prefix = yield utils.getExtensionPrefix(extension_name);
let install_command = '';
const ext_prefix = yield utils.getExtensionPrefix(extension_name);
const command_prefix = 'sudo pecl install -f ';
let command = '';
switch (true) {
// match pre-release versions
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
@ -2659,24 +2660,36 @@ function addExtensionDarwin(extension_csv, version, pipe) {
' ' +
stability +
' ' +
prefix;
ext_prefix;
return;
// match 5.6xdebug
case /5\.6xdebug/.test(version_extension):
install_command = 'sudo pecl install -f xdebug-2.5.5' + pipe;
command = command_prefix + 'xdebug-2.5.5' + pipe;
break;
// match 7.0xdebug
case /7\.0xdebug/.test(version_extension):
install_command = 'sudo pecl install -f xdebug-2.9.0' + pipe;
command = command_prefix + 'xdebug-2.9.0' + pipe;
break;
// match 5.6redis
case /5\.6redis/.test(version_extension):
install_command = 'sudo pecl install -f redis-2.2.8' + pipe;
command = command_prefix + 'redis-2.2.8' + pipe;
break;
case /[5-9]\.\dimagick/.test(version_extension):
install_command =
// match imagick
case /imagick/.test(extension):
command =
'brew install pkg-config imagemagick' +
pipe +
' && sudo pecl install -f imagick' +
' && ' +
command_prefix +
'imagick' +
pipe;
break;
// match sqlite
case /sqlite/.test(extension):
extension = 'sqlite3';
command = command_prefix + extension + pipe;
break;
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
script +=
'sh ' +
@ -2687,14 +2700,14 @@ function addExtensionDarwin(extension_csv, version, pipe) {
version;
return;
default:
install_command = 'sudo pecl install -f ' + extension + pipe;
command = command_prefix + extension + pipe;
break;
}
script +=
'\nadd_extension ' +
extension +
' "' +
install_command +
command +
'" ' +
(yield utils.getExtensionPrefix(extension));
});
@ -2716,7 +2729,6 @@ function addExtensionWindows(extension_csv, version, pipe) {
let script = '\n';
yield utils.asyncForEach(extensions, function (extension) {
return __awaiter(this, void 0, void 0, function* () {
extension = extension.toLowerCase();
const [extension_name, stability] = extension.split('-');
const version_extension = version + extension;
switch (true) {
@ -2724,6 +2736,11 @@ function addExtensionWindows(extension_csv, version, pipe) {
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
script += '\nAdd-Extension ' + extension_name + ' ' + stability;
break;
// match sqlite
case /sqlite/.test(extension):
extension = 'sqlite3';
script += '\nAdd-Extension ' + extension;
break;
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
script +=
@ -2758,11 +2775,11 @@ function addExtensionLinux(extension_csv, version, pipe) {
let script = '\n';
yield utils.asyncForEach(extensions, function (extension) {
return __awaiter(this, void 0, void 0, function* () {
extension = extension.toLowerCase();
const version_extension = version + extension;
const [extension_name, stability] = extension.split('-');
const prefix = yield utils.getExtensionPrefix(extension_name);
let install_command = '';
const ext_prefix = yield utils.getExtensionPrefix(extension_name);
const command_prefix = 'sudo $debconf_fix apt-get install -y php';
let command = '';
switch (true) {
// match pre-release versions
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
@ -2772,11 +2789,11 @@ function addExtensionLinux(extension_csv, version, pipe) {
' ' +
stability +
' ' +
prefix;
ext_prefix;
return;
// match 5.6gearman..7.4gearman
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
install_command =
command =
'sh ' +
path.join(__dirname, '../src/scripts/ext/gearman.sh') +
' ' +
@ -2796,14 +2813,18 @@ function addExtensionLinux(extension_csv, version, pipe) {
// match 7.0xdebug..7.4xdebug
case /^7\.[0-4]xdebug$/.test(version_extension):
script +=
'\nupdate_extension xdebug 2.9.0' +
'\nupdate_extension xdebug 2.9.2' +
pipe +
'\n' +
(yield utils.addLog('$tick', 'xdebug', 'Enabled', 'linux'));
return;
case /sqlite/.test(extension):
extension = 'sqlite3';
command = command_prefix + version + '-' + extension + pipe;
break;
default:
install_command =
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php' +
command =
command_prefix +
version +
'-' +
extension.replace('pdo_', '').replace('pdo-', '') +
@ -2811,7 +2832,7 @@ function addExtensionLinux(extension_csv, version, pipe) {
break;
}
script +=
'\nadd_extension ' + extension + ' "' + install_command + '" ' + prefix;
'\nadd_extension ' + extension + ' "' + command + '" ' + ext_prefix;
});
});
return script;
@ -2824,7 +2845,7 @@ exports.addExtensionLinux = addExtensionLinux;
* @param extension_csv
* @param version
* @param os_version
* @param log_prefix
* @param no_step
*/
function addExtension(extension_csv, version, os_version, no_step = false) {
return __awaiter(this, void 0, void 0, function* () {