From 75fa1436c593f5bc34457e9751a78359d33f5943 Mon Sep 17 00:00:00 2001 From: nodkz Date: Sat, 13 Jan 2018 11:53:01 +0600 Subject: [PATCH] fix(DownloadUrl): added Mint download url (thanks to @StepanYurtsiv) Related #38 --- src/util/MongoBinaryDownloadUrl.js | 25 +++++++++++++------ .../__tests__/MongoBinaryDownloadUrl-test.js | 12 +++++++++ 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/util/MongoBinaryDownloadUrl.js b/src/util/MongoBinaryDownloadUrl.js index 92d72474c..3d2707d8c 100644 --- a/src/util/MongoBinaryDownloadUrl.js +++ b/src/util/MongoBinaryDownloadUrl.js @@ -4,8 +4,8 @@ import getos from 'getos'; type OS = { - release: string, dist: string, + release?: string, }; const DOWNLOAD_URI = 'https://downloads.mongodb.org'; @@ -79,6 +79,8 @@ export default class MongoBinaryDownloadUrl { return this.getFedoraVersionString(os); } else if (/debian/i.test(os.dist)) { return this.getDebianVersionString(os); + } else if (/mint/i.test(os.dist)) { + return this.getMintVersionString(os); } throw new Error(`Cannot determine version string for ${JSON.stringify(os)}`); } @@ -109,12 +111,15 @@ export default class MongoBinaryDownloadUrl { getRhelVersionString(os: OS): string { let name: string = 'rhel'; - if (/^7/.test(os.release)) { - name += '70'; - } else if (/^6/.test(os.release)) { - name += '62'; - } else if (/^5/.test(os.release)) { - name += '55'; + const { release } = os; + if (release) { + if (/^7/.test(release)) { + name += '70'; + } else if (/^6/.test(release)) { + name += '62'; + } else if (/^5/.test(release)) { + name += '55'; + } } return name; } @@ -124,6 +129,12 @@ export default class MongoBinaryDownloadUrl { return 'ubuntu1404'; } + // eslint-disable-next-line no-unused-vars + getMintVersionString(os: OS): string { + // unfortunately getos doesn't return version for Mint + return 'ubuntu1404'; + } + getSuseVersionString(os: any): string { const [release]: [string | null] = os.release.match(/(^11|^12)/) || [null]; diff --git a/src/util/__tests__/MongoBinaryDownloadUrl-test.js b/src/util/__tests__/MongoBinaryDownloadUrl-test.js index b16f54c43..c3beeb20f 100644 --- a/src/util/__tests__/MongoBinaryDownloadUrl-test.js +++ b/src/util/__tests__/MongoBinaryDownloadUrl-test.js @@ -142,4 +142,16 @@ describe('MongoBinaryDownloadUrl', () => { ).toBe('debian81'); }); }); + + describe('getMintVersionString', () => { + const downloadUrl = new MongoBinaryDownloadUrl({ + platform: 'linux', + arch: 'x64', + version: '3.4.4', + }); + + it('should return an archive name for Linux Mint', () => { + expect(downloadUrl.getMintVersionString({ dist: 'Linux Mint' })).toBe('ubuntu1404'); + }); + }); });