From 8f8207a1ca335f49299c3b7051bf1e16b2015603 Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Sat, 14 Dec 2019 08:15:39 +0530 Subject: [PATCH] Add support for ext-gearman. Closes #116 --- __tests__/extensions.test.ts | 22 +++++++++++++++++++--- dist/index.js | 12 ++++++++++++ src/extensions.ts | 12 ++++++++++++ src/scripts/gearman.sh | 9 +++++++++ 4 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 src/scripts/gearman.sh diff --git a/__tests__/extensions.test.ts b/__tests__/extensions.test.ts index b26bf4ac..04e0c8f6 100644 --- a/__tests__/extensions.test.ts +++ b/__tests__/extensions.test.ts @@ -41,16 +41,32 @@ describe('Extension tests', () => { 'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php7.4-igbinary php7.4-redis' ); - linux = await extensions.addExtension('phalcon3, phalcon4', '7.2', 'linux'); + linux = await extensions.addExtension('gearman', '7.0', 'linux'); + expect(linux).toContain('gearman.sh 7.0'); + linux = await extensions.addExtension('gearman', '7.1', 'linux'); + expect(linux).toContain('gearman.sh 7.1'); + + linux = await extensions.addExtension( + 'phalcon3, phalcon4, gearman', + '7.2', + 'linux' + ); expect(linux).toContain('phalcon.sh master 7.2'); expect(linux).toContain('phalcon.sh 4.0.x 7.2'); + expect(linux).toContain('gearman.sh 7.2'); - linux = await extensions.addExtension('phalcon3, phalcon4', '7.3', 'linux'); + linux = await extensions.addExtension( + 'phalcon3, phalcon4, gearman', + '7.3', + 'linux' + ); expect(linux).toContain('phalcon.sh master 7.3'); expect(linux).toContain('phalcon.sh 4.0.x 7.3'); + expect(linux).toContain('gearman.sh 7.3'); - linux = await extensions.addExtension('phalcon4', '7.4', 'linux'); + linux = await extensions.addExtension('phalcon4, gearman', '7.4', 'linux'); expect(linux).toContain('phalcon.sh 4.0.x 7.4'); + expect(linux).toContain('gearman.sh 7.4'); linux = await extensions.addExtension('xdebug', '7.2', 'fedora'); expect(linux).toContain('Platform fedora is not supported'); diff --git a/dist/index.js b/dist/index.js index 6d9fdfb9..9471a006 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2208,6 +2208,18 @@ function addExtensionLinux(extension_csv, version) { version + ' >/dev/null 2>&1'; break; + case '7.0gearman': + case '7.1gearman': + case '7.2gearman': + case '7.3gearman': + case '7.4gearman': + install_command = + 'sh ' + + path.join(__dirname, '../src/scripts/gearman.sh') + + ' ' + + version + + ' >/dev/null 2>&1'; + break; default: install_command = 'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php' + diff --git a/src/extensions.ts b/src/extensions.ts index 50f549e8..3f1166e2 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -106,6 +106,18 @@ export async function addExtensionLinux( version + ' >/dev/null 2>&1'; break; + case '7.0gearman': + case '7.1gearman': + case '7.2gearman': + case '7.3gearman': + case '7.4gearman': + install_command = + 'sh ' + + path.join(__dirname, '../src/scripts/gearman.sh') + + ' ' + + version + + ' >/dev/null 2>&1'; + break; default: install_command = 'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php' + diff --git a/src/scripts/gearman.sh b/src/scripts/gearman.sh new file mode 100644 index 00000000..31e61506 --- /dev/null +++ b/src/scripts/gearman.sh @@ -0,0 +1,9 @@ +release_version=$(lsb_release -s -r) +sudo DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:ondrej/pkg-gearman -y +sudo DEBIAN_FRONTEND=noninteractive apt-get update -y + +if [ "$release_version" = "18.04" ]; then + sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y libgearman-dev php"$1"-gearman +elif [ "$release_version" = "16.04" ]; then + sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y php"$1"-gearman +fi \ No newline at end of file