2019-09-20 08:11:20 +05:30
|
|
|
import * as utils from './utils';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Install and enable extensions for darwin
|
|
|
|
*
|
|
|
|
* @param extension_csv
|
2019-09-26 02:33:39 +05:30
|
|
|
* @param version
|
2019-09-20 08:11:20 +05:30
|
|
|
*/
|
|
|
|
export async function addExtensionDarwin(
|
2019-09-26 02:33:39 +05:30
|
|
|
extension_csv: string,
|
2020-11-08 13:06:21 +05:30
|
|
|
version: string
|
2019-09-20 08:11:20 +05:30
|
|
|
): Promise<string> {
|
2019-11-24 02:04:12 +05:30
|
|
|
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
2020-05-07 03:27:00 +05:30
|
|
|
let add_script = '\n';
|
2020-05-21 23:31:12 +05:30
|
|
|
let remove_script = '';
|
2020-05-08 05:41:00 +05:30
|
|
|
await utils.asyncForEach(extensions, async function (extension: string) {
|
2019-12-26 18:31:18 +05:30
|
|
|
const version_extension: string = version + extension;
|
2020-02-16 00:25:50 +05:30
|
|
|
const [ext_name, ext_version]: string[] = extension.split('-');
|
2020-03-12 04:47:52 +05:30
|
|
|
const ext_prefix = await utils.getExtensionPrefix(ext_name);
|
2021-01-21 11:37:11 +01:00
|
|
|
|
|
|
|
// Install extensions from a GitHub tarball. This needs to be checked first
|
|
|
|
// as the version may also match the semver check below.
|
|
|
|
const urlMatches = extension.match(/.*-(.*)\/(.*)@(.*)/);
|
|
|
|
if (urlMatches != null) {
|
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_extension_from_github',
|
|
|
|
ext_name,
|
|
|
|
urlMatches[1],
|
|
|
|
urlMatches[2],
|
|
|
|
urlMatches[3],
|
|
|
|
ext_prefix
|
|
|
|
);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-12-23 23:19:38 +05:30
|
|
|
switch (true) {
|
2020-05-07 03:27:00 +05:30
|
|
|
// match :extension
|
|
|
|
case /^:/.test(ext_name):
|
|
|
|
remove_script += '\nremove_extension ' + ext_name.slice(1);
|
|
|
|
return;
|
2020-12-14 14:14:49 +05:30
|
|
|
// match 5.3blackfire...8.0blackfire
|
|
|
|
// match 5.3blackfire-(semver)...8.0blackfire-(semver)
|
2020-08-06 15:33:58 +05:30
|
|
|
// match pdo_oci and oci8
|
2020-12-14 14:14:49 +05:30
|
|
|
// match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos
|
2020-08-06 15:33:58 +05:30
|
|
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
2020-11-16 18:05:08 +05:30
|
|
|
// match 5.6couchbase...7.4couchbase
|
2020-12-14 14:13:45 +05:30
|
|
|
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(
|
2020-02-27 17:25:54 +05:30
|
|
|
version_extension
|
|
|
|
):
|
2020-07-26 15:48:19 +05:30
|
|
|
case /^pdo_oci$|^oci8$/.test(extension):
|
2020-12-14 12:52:00 +05:30
|
|
|
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
2020-07-26 15:48:19 +05:30
|
|
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
2020-11-16 18:05:08 +05:30
|
|
|
case /^5\.6couchbase$|^7\.[0-4]couchbase$/.test(version_extension):
|
2020-08-06 15:33:58 +05:30
|
|
|
add_script += await utils.customPackage(
|
|
|
|
ext_name,
|
|
|
|
'ext',
|
|
|
|
extension,
|
|
|
|
'darwin'
|
2020-07-26 15:48:19 +05:30
|
|
|
);
|
|
|
|
return;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match pre-release versions. For example - xdebug-beta
|
2020-11-27 14:55:30 +05:30
|
|
|
case /.*-(stable|beta|alpha|devel|snapshot|rc|preview)/.test(
|
|
|
|
version_extension
|
|
|
|
):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_unstable_extension',
|
|
|
|
ext_name,
|
|
|
|
ext_version,
|
|
|
|
ext_prefix
|
|
|
|
);
|
2020-01-30 12:03:30 +05:30
|
|
|
return;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match semver
|
2020-02-23 19:00:40 +05:30
|
|
|
case /.*-\d+\.\d+\.\d+.*/.test(version_extension):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_pecl_extension',
|
|
|
|
ext_name,
|
|
|
|
ext_version,
|
|
|
|
ext_prefix
|
|
|
|
);
|
2020-02-23 19:00:40 +05:30
|
|
|
return;
|
2020-07-23 06:47:57 +05:30
|
|
|
// match 5.3pcov to 7.0pcov
|
|
|
|
case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.getUnsupportedLog('pcov', version, 'darwin');
|
2020-07-23 06:47:57 +05:30
|
|
|
return;
|
2020-12-24 04:16:34 +05:30
|
|
|
// match 5.6 to 8.9 for amqp, grpc, igbinary, imagick, imap, protobuf, swoole and xdebug
|
|
|
|
// match 7.1 to 8.9 for pcov
|
|
|
|
case /(5\.6|7\.[0-4]|8\.[0-9])(amqp|grpc|igbinary|imagick|imap|protobuf|swoole|xdebug)/.test(
|
2020-10-17 21:56:06 +05:30
|
|
|
version_extension
|
|
|
|
):
|
2020-06-19 04:09:13 +05:30
|
|
|
case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension):
|
2020-11-08 13:06:21 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_brew_extension',
|
|
|
|
ext_name,
|
|
|
|
ext_prefix
|
|
|
|
);
|
|
|
|
return;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match 5.6redis
|
2019-12-26 18:31:18 +05:30
|
|
|
case /5\.6redis/.test(version_extension):
|
2020-11-08 13:06:21 +05:30
|
|
|
extension = 'redis-2.2.8';
|
2020-01-21 01:06:31 +05:30
|
|
|
break;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match sqlite
|
2020-03-16 06:53:58 +05:30
|
|
|
case /^sqlite$/.test(extension):
|
2020-03-12 04:47:52 +05:30
|
|
|
extension = 'sqlite3';
|
|
|
|
break;
|
2019-09-26 02:33:39 +05:30
|
|
|
default:
|
|
|
|
break;
|
2019-09-20 08:11:20 +05:30
|
|
|
}
|
2020-11-08 13:06:21 +05:30
|
|
|
add_script += await utils.joins('\nadd_extension', extension, ext_prefix);
|
2019-09-20 08:11:20 +05:30
|
|
|
});
|
2020-05-07 03:27:00 +05:30
|
|
|
return add_script + remove_script;
|
2019-09-20 08:11:20 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Install and enable extensions for windows
|
|
|
|
*
|
|
|
|
* @param extension_csv
|
|
|
|
* @param version
|
|
|
|
*/
|
|
|
|
export async function addExtensionWindows(
|
|
|
|
extension_csv: string,
|
2020-03-12 07:57:40 +05:30
|
|
|
version: string
|
2019-09-20 08:11:20 +05:30
|
|
|
): Promise<string> {
|
2019-11-24 02:04:12 +05:30
|
|
|
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
2020-05-07 03:27:00 +05:30
|
|
|
let add_script = '\n';
|
2020-05-21 23:31:12 +05:30
|
|
|
let remove_script = '';
|
2020-05-08 05:41:00 +05:30
|
|
|
await utils.asyncForEach(extensions, async function (extension: string) {
|
2020-02-16 00:25:50 +05:30
|
|
|
const [ext_name, ext_version]: string[] = extension.split('-');
|
2019-12-26 18:31:18 +05:30
|
|
|
const version_extension: string = version + extension;
|
2020-02-16 00:25:50 +05:30
|
|
|
let matches: RegExpExecArray;
|
2019-12-23 23:19:38 +05:30
|
|
|
switch (true) {
|
2020-05-07 03:27:00 +05:30
|
|
|
// Match :extension
|
|
|
|
case /^:/.test(ext_name):
|
|
|
|
remove_script += '\nRemove-Extension ' + ext_name.slice(1);
|
2020-07-26 15:48:19 +05:30
|
|
|
break;
|
2020-12-14 14:14:49 +05:30
|
|
|
// match 5.3blackfire...8.0blackfire
|
|
|
|
// match 5.3blackfire-(semver)...8.0blackfire-(semver)
|
2020-08-06 15:33:58 +05:30
|
|
|
// match pdo_oci and oci8
|
2020-12-14 14:14:49 +05:30
|
|
|
// match 5.3ioncube...7.4ioncube
|
2020-08-06 15:33:58 +05:30
|
|
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
2020-12-14 14:13:45 +05:30
|
|
|
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(
|
2020-02-27 17:25:54 +05:30
|
|
|
version_extension
|
|
|
|
):
|
2020-07-26 15:48:19 +05:30
|
|
|
case /^pdo_oci$|^oci8$/.test(extension):
|
|
|
|
case /^5\.[3-6]ioncube$|^7\.[0-4]ioncube$/.test(version_extension):
|
|
|
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
2020-08-06 15:33:58 +05:30
|
|
|
add_script += await utils.customPackage(
|
|
|
|
ext_name,
|
|
|
|
'ext',
|
|
|
|
extension,
|
|
|
|
'win32'
|
2020-07-26 15:48:19 +05:30
|
|
|
);
|
2020-08-06 15:33:58 +05:30
|
|
|
return;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match pre-release versions. For example - xdebug-beta
|
2020-11-27 14:55:30 +05:30
|
|
|
case /.*-(stable|beta|alpha|devel|snapshot)/.test(version_extension):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nAdd-Extension',
|
|
|
|
ext_name,
|
2020-11-27 14:55:30 +05:30
|
|
|
ext_version.replace('stable', '')
|
2020-07-24 10:28:48 +05:30
|
|
|
);
|
2020-01-26 01:04:09 +05:30
|
|
|
break;
|
2021-01-21 11:37:11 +01:00
|
|
|
// match extensions from GitHub. Do this before checking for semver as
|
|
|
|
// the version may match that as well
|
|
|
|
case /.*-(.*)\/(.*)@(.*)/.test(extension):
|
|
|
|
add_script += await utils.getUnsupportedLog(
|
|
|
|
extension,
|
|
|
|
version,
|
|
|
|
'win32'
|
|
|
|
);
|
|
|
|
break;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match semver without state
|
2020-02-16 00:25:50 +05:30
|
|
|
case /.*-\d+\.\d+\.\d+$/.test(version_extension):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nAdd-Extension',
|
|
|
|
ext_name,
|
|
|
|
'stable',
|
|
|
|
ext_version
|
|
|
|
);
|
2020-07-26 15:48:19 +05:30
|
|
|
break;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match semver with state
|
2020-10-31 19:04:20 +05:30
|
|
|
case /.*-(\d+\.\d+\.\d)([a-zA-Z+]+)\d*/.test(version_extension):
|
|
|
|
matches = /.*-(\d+\.\d+\.\d)([a-zA-Z+]+)\d*/.exec(
|
2020-02-16 00:25:50 +05:30
|
|
|
version_extension
|
|
|
|
) as RegExpExecArray;
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nAdd-Extension',
|
|
|
|
ext_name,
|
2020-10-31 19:04:20 +05:30
|
|
|
matches[2].replace('preview', 'devel'),
|
2020-07-24 10:28:48 +05:30
|
|
|
matches[1]
|
|
|
|
);
|
2020-07-26 15:48:19 +05:30
|
|
|
break;
|
2020-12-24 18:20:42 +05:30
|
|
|
// match 7.2xdebug2 to 7.4xdebug2
|
|
|
|
case /7\.[2-4]xdebug2/.test(version_extension):
|
2020-11-26 23:11:52 +05:30
|
|
|
add_script += '\nAdd-Extension xdebug stable 2.9.8';
|
|
|
|
break;
|
2020-12-24 18:20:42 +05:30
|
|
|
// match 5.3pcov to 7.0pcov
|
2020-07-23 06:47:57 +05:30
|
|
|
case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.getUnsupportedLog('pcov', version, 'win32');
|
2020-07-23 06:47:57 +05:30
|
|
|
break;
|
2020-03-16 06:53:58 +05:30
|
|
|
// match 5.3mysql..5.6mysql
|
|
|
|
// match 5.3mysqli..5.6mysqli
|
|
|
|
// match 5.3mysqlnd..5.6mysqlnd
|
|
|
|
case /^5\.\d(mysql|mysqli|mysqlnd)$/.test(version_extension):
|
2020-05-07 03:27:00 +05:30
|
|
|
add_script +=
|
2020-03-16 06:53:58 +05:30
|
|
|
'\nAdd-Extension mysql\nAdd-Extension mysqli\nAdd-Extension mysqlnd';
|
|
|
|
break;
|
2020-10-17 00:09:15 +05:30
|
|
|
// match 7.0mysql..8.9mysql
|
|
|
|
// match 7.0mysqli..8.9mysqli
|
|
|
|
// match 7.0mysqlnd..8.9mysqlnd
|
2020-03-16 06:53:58 +05:30
|
|
|
case /[7-8]\.\d(mysql|mysqli|mysqlnd)$/.test(version_extension):
|
2020-05-07 03:27:00 +05:30
|
|
|
add_script += '\nAdd-Extension mysqli\nAdd-Extension mysqlnd';
|
2020-03-16 06:53:58 +05:30
|
|
|
break;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match sqlite
|
2020-03-16 06:53:58 +05:30
|
|
|
case /^sqlite$/.test(extension):
|
2020-03-12 04:47:52 +05:30
|
|
|
extension = 'sqlite3';
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins('\nAdd-Extension', extension);
|
2020-03-12 04:47:52 +05:30
|
|
|
break;
|
2019-12-02 20:43:45 +05:30
|
|
|
default:
|
2020-05-17 11:19:52 +05:30
|
|
|
add_script += '\nAdd-Extension ' + extension;
|
2019-12-02 20:43:45 +05:30
|
|
|
break;
|
|
|
|
}
|
2019-09-20 08:11:20 +05:30
|
|
|
});
|
2020-05-07 03:27:00 +05:30
|
|
|
return add_script + remove_script;
|
2019-09-20 08:11:20 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Install and enable extensions for linux
|
|
|
|
*
|
|
|
|
* @param extension_csv
|
|
|
|
* @param version
|
|
|
|
*/
|
|
|
|
export async function addExtensionLinux(
|
|
|
|
extension_csv: string,
|
2020-11-08 13:06:21 +05:30
|
|
|
version: string
|
2019-09-20 08:11:20 +05:30
|
|
|
): Promise<string> {
|
2019-11-24 02:04:12 +05:30
|
|
|
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
2020-05-07 03:27:00 +05:30
|
|
|
let add_script = '\n';
|
2020-05-21 23:31:12 +05:30
|
|
|
let remove_script = '';
|
2020-05-08 05:41:00 +05:30
|
|
|
await utils.asyncForEach(extensions, async function (extension: string) {
|
2019-12-26 18:31:18 +05:30
|
|
|
const version_extension: string = version + extension;
|
2020-02-16 00:25:50 +05:30
|
|
|
const [ext_name, ext_version]: string[] = extension.split('-');
|
2020-03-12 04:47:52 +05:30
|
|
|
const ext_prefix = await utils.getExtensionPrefix(ext_name);
|
2021-01-21 11:37:11 +01:00
|
|
|
|
|
|
|
// Install extensions from a GitHub tarball. This needs to be checked first
|
|
|
|
// as the version may also match the semver check below.
|
|
|
|
const urlMatches = extension.match(/.*-(.*)\/(.*)@(.*)/);
|
|
|
|
if (urlMatches != null) {
|
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_extension_from_github',
|
|
|
|
ext_name,
|
|
|
|
urlMatches[1],
|
|
|
|
urlMatches[2],
|
|
|
|
urlMatches[3],
|
|
|
|
ext_prefix
|
|
|
|
);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-12-23 23:19:38 +05:30
|
|
|
switch (true) {
|
2020-05-07 03:27:00 +05:30
|
|
|
// Match :extension
|
|
|
|
case /^:/.test(ext_name):
|
|
|
|
remove_script += '\nremove_extension ' + ext_name.slice(1);
|
|
|
|
return;
|
2020-12-14 14:14:49 +05:30
|
|
|
// match 5.3blackfire...8.0blackfire
|
|
|
|
// match 5.3blackfire-(semver)...8.0blackfire-(semver)
|
2020-08-08 19:02:17 +05:30
|
|
|
// match 5.3pdo_cubrid...7.2php_cubrid, 5.3cubrid...7.4cubrid
|
2020-08-06 15:33:58 +05:30
|
|
|
// match pdo_oci and oci8
|
2020-12-14 14:14:49 +05:30
|
|
|
// match 5.3ioncube...7.4ioncube, 5.3geos...7.4geos
|
2020-08-06 15:33:58 +05:30
|
|
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
2020-11-16 18:05:08 +05:30
|
|
|
// match 5.6gearman...7.4gearman, 5.6couchbase...7.4couchbase
|
2020-12-14 14:13:45 +05:30
|
|
|
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(
|
2020-02-27 17:25:54 +05:30
|
|
|
version_extension
|
|
|
|
):
|
2020-08-08 19:02:17 +05:30
|
|
|
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(
|
|
|
|
version_extension
|
|
|
|
):
|
2020-07-26 15:48:19 +05:30
|
|
|
case /^pdo_oci$|^oci8$/.test(extension):
|
2020-12-19 18:47:19 +05:30
|
|
|
case /^(5\.6|7\.[0-4]|8\.0)intl-[\d]+\.[\d]+$/.test(version_extension):
|
2020-12-14 12:52:00 +05:30
|
|
|
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
2020-07-26 15:48:19 +05:30
|
|
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
2020-11-16 18:05:08 +05:30
|
|
|
case /^((5\.6)|(7\.[0-4]))(gearman|couchbase)$/.test(version_extension):
|
2020-08-06 15:33:58 +05:30
|
|
|
add_script += await utils.customPackage(
|
|
|
|
ext_name,
|
|
|
|
'ext',
|
|
|
|
extension,
|
|
|
|
'linux'
|
|
|
|
);
|
2020-07-26 15:48:19 +05:30
|
|
|
return;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match pre-release versions. For example - xdebug-beta
|
2020-11-27 14:55:30 +05:30
|
|
|
case /.*-(stable|beta|alpha|devel|snapshot|rc|preview)/.test(
|
|
|
|
version_extension
|
|
|
|
):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_unstable_extension',
|
|
|
|
ext_name,
|
|
|
|
ext_version,
|
|
|
|
ext_prefix
|
|
|
|
);
|
2020-01-30 12:03:30 +05:30
|
|
|
return;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match semver versions
|
2020-02-16 00:25:50 +05:30
|
|
|
case /.*-\d+\.\d+\.\d+.*/.test(version_extension):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_pecl_extension',
|
|
|
|
ext_name,
|
|
|
|
ext_version,
|
|
|
|
ext_prefix
|
|
|
|
);
|
2020-02-13 22:39:00 +05:30
|
|
|
return;
|
2020-07-23 06:47:57 +05:30
|
|
|
// match 5.3pcov to 7.0pcov
|
|
|
|
case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
|
2020-07-24 10:28:48 +05:30
|
|
|
add_script += await utils.getUnsupportedLog('pcov', version, 'linux');
|
2020-07-23 06:47:57 +05:30
|
|
|
return;
|
2020-12-24 18:20:42 +05:30
|
|
|
// match 7.2xdebug2...7.4xdebug2
|
|
|
|
case /^7\.[2-4]xdebug2$/.test(version_extension):
|
2020-11-26 23:11:52 +05:30
|
|
|
add_script += await utils.joins(
|
|
|
|
'\nadd_pecl_extension',
|
2020-12-24 18:20:42 +05:30
|
|
|
'xdebug',
|
2020-11-26 23:11:52 +05:30
|
|
|
'2.9.8',
|
|
|
|
ext_prefix
|
|
|
|
);
|
2020-12-24 18:20:42 +05:30
|
|
|
return;
|
2020-03-05 05:58:24 +05:30
|
|
|
// match pdo extensions
|
2020-07-26 15:48:19 +05:30
|
|
|
case /.*pdo[_-].*/.test(version_extension):
|
|
|
|
extension = extension.replace(/pdo[_-]|3/, '');
|
2020-05-07 03:27:00 +05:30
|
|
|
add_script += '\nadd_pdo_extension ' + extension;
|
2020-03-05 05:58:24 +05:30
|
|
|
return;
|
2020-03-12 04:47:52 +05:30
|
|
|
// match sqlite
|
2020-03-16 06:53:58 +05:30
|
|
|
case /^sqlite$/.test(extension):
|
2020-03-12 04:47:52 +05:30
|
|
|
extension = 'sqlite3';
|
|
|
|
break;
|
2019-09-28 20:09:05 +05:30
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
2020-11-08 13:06:21 +05:30
|
|
|
add_script += await utils.joins('\nadd_extension', extension, ext_prefix);
|
2019-09-20 08:11:20 +05:30
|
|
|
});
|
2020-05-07 03:27:00 +05:30
|
|
|
return add_script + remove_script;
|
2019-09-20 08:11:20 +05:30
|
|
|
}
|
2019-11-24 02:04:12 +05:30
|
|
|
|
|
|
|
/**
|
|
|
|
* Install and enable extensions
|
|
|
|
*
|
|
|
|
* @param extension_csv
|
|
|
|
* @param version
|
|
|
|
* @param os_version
|
2020-03-12 04:47:52 +05:30
|
|
|
* @param no_step
|
2019-11-24 02:04:12 +05:30
|
|
|
*/
|
|
|
|
export async function addExtension(
|
|
|
|
extension_csv: string,
|
|
|
|
version: string,
|
|
|
|
os_version: string,
|
|
|
|
no_step = false
|
|
|
|
): Promise<string> {
|
2020-11-08 13:06:21 +05:30
|
|
|
const log: string = await utils.stepLog('Setup Extensions', os_version);
|
2019-11-24 02:04:12 +05:30
|
|
|
let script = '\n';
|
|
|
|
switch (no_step) {
|
|
|
|
case true:
|
2020-11-08 13:06:21 +05:30
|
|
|
script += log + (await utils.suppressOutput(os_version));
|
2019-11-24 02:04:12 +05:30
|
|
|
break;
|
|
|
|
case false:
|
|
|
|
default:
|
2020-11-08 13:06:21 +05:30
|
|
|
script += log;
|
2019-11-24 02:04:12 +05:30
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (os_version) {
|
|
|
|
case 'win32':
|
2020-03-12 07:57:40 +05:30
|
|
|
return script + (await addExtensionWindows(extension_csv, version));
|
2019-11-24 02:04:12 +05:30
|
|
|
case 'darwin':
|
2020-11-08 13:06:21 +05:30
|
|
|
return script + (await addExtensionDarwin(extension_csv, version));
|
2019-11-24 02:04:12 +05:30
|
|
|
case 'linux':
|
2020-11-08 13:06:21 +05:30
|
|
|
return script + (await addExtensionLinux(extension_csv, version));
|
2019-11-24 02:04:12 +05:30
|
|
|
default:
|
|
|
|
return await utils.log(
|
|
|
|
'Platform ' + os_version + ' is not supported',
|
|
|
|
os_version,
|
|
|
|
'error'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|