From 5ad0888329890815dee75fed3cf07ec9f90be4a4 Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Mon, 16 Mar 2020 06:38:50 +0530 Subject: [PATCH] Fix db extensions --- __tests__/extensions.test.ts | 15 ++++++++++++++- dist/index.js | 20 ++++++++++++++++---- src/extensions.ts | 20 ++++++++++++++++---- src/scripts/darwin.sh | 6 +++++- src/scripts/linux.sh | 6 +++++- 5 files changed, 56 insertions(+), 11 deletions(-) diff --git a/__tests__/extensions.test.ts b/__tests__/extensions.test.ts index f2fa76f0..f39e55ce 100644 --- a/__tests__/extensions.test.ts +++ b/__tests__/extensions.test.ts @@ -13,6 +13,19 @@ describe('Extension tests', () => { expect(win32).toContain('phalcon.ps1 phalcon4'); expect(win32).toContain('Add-Extension ast beta'); + win32 = await extensions.addExtension('mysql', '7.4', 'win32'); + expect(win32).toContain('Add-Extension mysqli'); + expect(win32).toContain('Add-Extension mysqlnd'); + + win32 = await extensions.addExtension('mysql', '8.0', 'win32'); + expect(win32).toContain('Add-Extension mysqli'); + expect(win32).toContain('Add-Extension mysqlnd'); + + win32 = await extensions.addExtension('mysql', '5.6', 'win32'); + expect(win32).toContain('Add-Extension mysql'); + expect(win32).toContain('Add-Extension mysqli'); + expect(win32).toContain('Add-Extension mysqlnd'); + win32 = await extensions.addExtension( 'phalcon3, does_not_exist', '7.2', @@ -66,7 +79,7 @@ describe('Extension tests', () => { it('checking addExtensionOnDarwin', async () => { let darwin: string = await extensions.addExtension( - 'Xdebug, pcov, sqlite3, ast-beta', + 'Xdebug, pcov, sqlite, ast-beta', '7.2', 'darwin' ); diff --git a/dist/index.js b/dist/index.js index f6327f7c..51b0ba84 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2531,7 +2531,7 @@ async function addExtensionDarwin(extension_csv, version, pipe) { command = command_prefix + 'redis-2.2.8' + pipe; break; // match imagick - case /imagick/.test(extension): + case /^imagick$/.test(extension): command = 'brew install pkg-config imagemagick' + pipe + @@ -2541,7 +2541,7 @@ async function addExtensionDarwin(extension_csv, version, pipe) { pipe; break; // match sqlite - case /sqlite/.test(extension): + case /^sqlite$/.test(extension): extension = 'sqlite3'; command = command_prefix + extension + pipe; break; @@ -2587,8 +2587,19 @@ async function addExtensionWindows(extension_csv, version) { case /.*-(beta|alpha|devel|snapshot)/.test(version_extension): script += '\nAdd-Extension ' + extension_name + ' ' + stability; break; + // match 5.6mysql, 5.6mysqli, 5.6mysqlnd + case /^5\.6(mysql|mysqli|mysqlnd)$/.test(version_extension): + script += + '\nAdd-Extension mysql\nAdd-Extension mysqli\nAdd-Extension mysqlnd'; + break; + // match 7.0mysql..8.0mysql + // match 7.0mysqli..8.0mysqli + // match 7.0mysqlnd..8.0mysqlnd + case /[7-8]\.\d(mysql|mysqli|mysqlnd)$/.test(version_extension): + script += '\nAdd-Extension mysqli\nAdd-Extension mysqlnd'; + break; // match sqlite - case /sqlite/.test(extension): + case /^sqlite$/.test(extension): extension = 'sqlite3'; script += '\nAdd-Extension ' + extension; break; @@ -2665,7 +2676,8 @@ async function addExtensionLinux(extension_csv, version, pipe) { '\n' + (await utils.addLog('$tick', 'xdebug', 'Enabled', 'linux')); return; - case /sqlite/.test(extension): + // match sqlite + case /^sqlite$/.test(extension): extension = 'sqlite3'; command = command_prefix + version + '-' + extension + pipe; break; diff --git a/src/extensions.ts b/src/extensions.ts index db42fe66..fb68976b 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -45,7 +45,7 @@ export async function addExtensionDarwin( command = command_prefix + 'redis-2.2.8' + pipe; break; // match imagick - case /imagick/.test(extension): + case /^imagick$/.test(extension): command = 'brew install pkg-config imagemagick' + pipe + @@ -55,7 +55,7 @@ export async function addExtensionDarwin( pipe; break; // match sqlite - case /sqlite/.test(extension): + case /^sqlite$/.test(extension): extension = 'sqlite3'; command = command_prefix + extension + pipe; break; @@ -104,8 +104,19 @@ export async function addExtensionWindows( case /.*-(beta|alpha|devel|snapshot)/.test(version_extension): script += '\nAdd-Extension ' + extension_name + ' ' + stability; break; + // match 5.6mysql, 5.6mysqli, 5.6mysqlnd + case /^5\.6(mysql|mysqli|mysqlnd)$/.test(version_extension): + script += + '\nAdd-Extension mysql\nAdd-Extension mysqli\nAdd-Extension mysqlnd'; + break; + // match 7.0mysql..8.0mysql + // match 7.0mysqli..8.0mysqli + // match 7.0mysqlnd..8.0mysqlnd + case /[7-8]\.\d(mysql|mysqli|mysqlnd)$/.test(version_extension): + script += '\nAdd-Extension mysqli\nAdd-Extension mysqlnd'; + break; // match sqlite - case /sqlite/.test(extension): + case /^sqlite$/.test(extension): extension = 'sqlite3'; script += '\nAdd-Extension ' + extension; break; @@ -186,7 +197,8 @@ export async function addExtensionLinux( '\n' + (await utils.addLog('$tick', 'xdebug', 'Enabled', 'linux')); return; - case /sqlite/.test(extension): + // match sqlite + case /^sqlite$/.test(extension): extension = 'sqlite3'; command = command_prefix + version + '-' + extension + pipe; break; diff --git a/src/scripts/darwin.sh b/src/scripts/darwin.sh index c2ac455f..0dd5c6c5 100644 --- a/src/scripts/darwin.sh +++ b/src/scripts/darwin.sh @@ -27,7 +27,11 @@ remove_extension() { # Function to test if extension is loaded check_extension() { extension=$1 - php -m | grep -i -q -w "$extension" + if [ "$extension" != "mysql" ]; then + php -m | grep -i -q -w "$extension" + else + php -m | grep -i -q "$extension" + fi } # Fuction to get the PECL version diff --git a/src/scripts/linux.sh b/src/scripts/linux.sh index 501a8924..b7c8c933 100644 --- a/src/scripts/linux.sh +++ b/src/scripts/linux.sh @@ -51,7 +51,11 @@ get_pecl_version() { # Function to test if extension is loaded check_extension() { extension=$1 - php -m | grep -i -q -w "$extension" + if [ "$extension" != "mysql" ]; then + php -m | grep -i -q -w "$extension" + else + php -m | grep -i -q "$extension" + fi } # Function to delete extensions