diff --git a/__tests__/tools.test.ts b/__tests__/tools.test.ts index b98ad289..408e3bdd 100644 --- a/__tests__/tools.test.ts +++ b/__tests__/tools.test.ts @@ -539,6 +539,7 @@ describe('Tools tests', () => { const data = getData({ tool: 'castor', php_version: '8.1', + version_prefix: 'v', version: version, os: os }); diff --git a/dist/index.js b/dist/index.js index d96be9e7..1a18d389 100644 --- a/dist/index.js +++ b/dist/index.js @@ -838,25 +838,9 @@ async function addBlackfirePlayer(data) { } exports.addBlackfirePlayer = addBlackfirePlayer; async function addCastor(data) { - let filename; - switch (data['os']) { - case 'linux': - case 'darwin': - filename = 'castor.' + data['os'] + '-amd64.phar'; - break; - case 'win32': - filename = 'castor.windows-amd64.phar'; - break; - default: - return await utils.log('Platform ' + data['os'] + ' is not supported', data['os'], 'error'); - } - if (data['version'] === 'latest') { - data['uri'] = ['releases/latest/download', filename].join('/'); - } - else { - data['uri'] = ['releases/download', 'v' + data['version'], filename].join('/'); - } - data['url'] = [data['domain'], data['repository'], data['uri']].join('/'); + data['tool'] = 'castor.' + data['os'].replace('win32', 'windows') + '-amd64'; + data['url'] = await getUrl(data); + data['tool'] = 'castor'; return await addArchive(data); } exports.addCastor = addCastor; diff --git a/src/configs/tools.json b/src/configs/tools.json index 378bc0fd..064fc6b5 100644 --- a/src/configs/tools.json +++ b/src/configs/tools.json @@ -226,7 +226,9 @@ "type": "custom-function", "domain": "https://github.com", "repository": "jolicode/castor", - "function": "castor" + "function": "castor", + "version_prefix": "v", + "version_parameter": "-V" }, "composer": { "type": "custom-function", diff --git a/src/tools.ts b/src/tools.ts index e046ed24..eed82704 100644 --- a/src/tools.ts +++ b/src/tools.ts @@ -236,30 +236,9 @@ export async function addBlackfirePlayer(data: RS): Promise { * @param data */ export async function addCastor(data: RS): Promise { - let filename: string; - switch (data['os']) { - case 'linux': - case 'darwin': - filename = 'castor.' + data['os'] + '-amd64.phar'; - break; - case 'win32': - filename = 'castor.windows-amd64.phar'; - break; - default: - return await utils.log( - 'Platform ' + data['os'] + ' is not supported', - data['os'], - 'error' - ); - } - if (data['version'] === 'latest') { - data['uri'] = ['releases/latest/download', filename].join('/'); - } else { - data['uri'] = ['releases/download', 'v' + data['version'], filename].join( - '/' - ); - } - data['url'] = [data['domain'], data['repository'], data['uri']].join('/'); + data['tool'] = 'castor.' + data['os'].replace('win32', 'windows') + '-amd64'; + data['url'] = await getUrl(data); + data['tool'] = 'castor'; return await addArchive(data); }