mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-23 04:11:06 +07:00
Link tools installed using composer
This commit is contained in:
parent
dd4f0db7bf
commit
3f42b7d5fb
@ -19,6 +19,24 @@ describe('Tools tests', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('checking linkTool', async () => {
|
||||||
|
expect(await tools.linkTool('tool', 'linux')).toContain(
|
||||||
|
'sudo ln -s "$(composer -q global config home)"/vendor/bin/tool /usr/local/bin/tool'
|
||||||
|
);
|
||||||
|
expect(await tools.linkTool('tool', 'darwin')).toContain(
|
||||||
|
'sudo ln -s "$(composer -q global config home)"/vendor/bin/tool /usr/local/bin/tool'
|
||||||
|
);
|
||||||
|
expect(await tools.linkTool('tool', 'win32')).toContain(
|
||||||
|
'$composer_dir = composer -q global config home | % {$_ -replace "/", "\\"}'
|
||||||
|
);
|
||||||
|
expect(await tools.linkTool('tool', 'win32')).toContain(
|
||||||
|
'Add-Content -Path $PsHome\\profile.ps1 -Value "New-Alias tool $composer_dir\\vendor\\bin\\tool.bat"'
|
||||||
|
);
|
||||||
|
expect(await tools.linkTool('tool', 'fedora')).toContain(
|
||||||
|
'Platform fedora is not supported'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it('checking addTools', async () => {
|
it('checking addTools', async () => {
|
||||||
let script: string = await tools.addTools(
|
let script: string = await tools.addTools(
|
||||||
'php-cs-fixer, phpstan, phpunit, pecl, phinx',
|
'php-cs-fixer, phpstan, phpunit, pecl, phinx',
|
||||||
@ -38,9 +56,12 @@ describe('Tools tests', () => {
|
|||||||
);
|
);
|
||||||
expect(script).toContain('add_pecl');
|
expect(script).toContain('add_pecl');
|
||||||
expect(script).toContain('composer global require robmorgan/phinx');
|
expect(script).toContain('composer global require robmorgan/phinx');
|
||||||
|
expect(script).toContain(
|
||||||
|
'sudo ln -s "$(composer -q global config home)"/vendor/bin/phinx /usr/local/bin/phinx'
|
||||||
|
);
|
||||||
|
|
||||||
script = await tools.addTools(
|
script = await tools.addTools(
|
||||||
'phpcs, phpcbf, phpcpd, phpmd, psalm',
|
'phpcs, phpcbf, phpcpd, phpmd, psalm, phinx',
|
||||||
'darwin'
|
'darwin'
|
||||||
);
|
);
|
||||||
expect(script).toContain(
|
expect(script).toContain(
|
||||||
@ -61,9 +82,13 @@ describe('Tools tests', () => {
|
|||||||
expect(script).toContain(
|
expect(script).toContain(
|
||||||
'https://github.com/vimeo/psalm/releases/latest/download/psalm.phar psalm'
|
'https://github.com/vimeo/psalm/releases/latest/download/psalm.phar psalm'
|
||||||
);
|
);
|
||||||
|
expect(script).toContain('composer global require robmorgan/phinx');
|
||||||
|
expect(script).toContain(
|
||||||
|
'sudo ln -s "$(composer -q global config home)"/vendor/bin/phinx /usr/local/bin/phinx'
|
||||||
|
);
|
||||||
|
|
||||||
script = await tools.addTools(
|
script = await tools.addTools(
|
||||||
'codeception, deployer, prestissimo, phpmd, does_not_exit',
|
'codeception, deployer, prestissimo, phpmd, phinx, does_not_exit',
|
||||||
'win32'
|
'win32'
|
||||||
);
|
);
|
||||||
expect(script).toContain(
|
expect(script).toContain(
|
||||||
@ -73,6 +98,13 @@ describe('Tools tests', () => {
|
|||||||
'Add-Tool https://deployer.org/deployer.phar deployer'
|
'Add-Tool https://deployer.org/deployer.phar deployer'
|
||||||
);
|
);
|
||||||
expect(script).toContain('composer global require hirak/prestissimo');
|
expect(script).toContain('composer global require hirak/prestissimo');
|
||||||
|
expect(script).toContain('composer global require robmorgan/phinx');
|
||||||
|
expect(script).toContain(
|
||||||
|
'$composer_dir = composer -q global config home | % {$_ -replace "/", "\\"}'
|
||||||
|
);
|
||||||
|
expect(script).toContain(
|
||||||
|
'Add-Content -Path $PsHome\\profile.ps1 -Value "New-Alias phinx $composer_dir\\vendor\\bin\\phinx.bat"'
|
||||||
|
);
|
||||||
expect(script).toContain('Tool does_not_exit is not supported');
|
expect(script).toContain('Tool does_not_exit is not supported');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
33
dist/index.js
vendored
33
dist/index.js
vendored
@ -1583,6 +1583,29 @@ function getPECLCommand(os_version) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.getPECLCommand = getPECLCommand;
|
exports.getPECLCommand = getPECLCommand;
|
||||||
|
function linkTool(tool, os_version) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
switch (os_version) {
|
||||||
|
case 'linux':
|
||||||
|
case 'darwin':
|
||||||
|
return ('sudo ln -s "$(composer -q global config home)"/vendor/bin/' +
|
||||||
|
tool +
|
||||||
|
' /usr/local/bin/' +
|
||||||
|
tool);
|
||||||
|
case 'win32':
|
||||||
|
return ('$composer_dir = composer -q global config home | % {$_ -replace "/", "\\"}' +
|
||||||
|
'\n' +
|
||||||
|
'Add-Content -Path $PsHome\\profile.ps1 -Value "New-Alias ' +
|
||||||
|
tool +
|
||||||
|
' $composer_dir\\vendor\\bin\\' +
|
||||||
|
tool +
|
||||||
|
'.bat"');
|
||||||
|
default:
|
||||||
|
return yield utils.log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.linkTool = linkTool;
|
||||||
/**
|
/**
|
||||||
* Setup tools
|
* Setup tools
|
||||||
*
|
*
|
||||||
@ -1651,7 +1674,11 @@ function addTools(tools_csv, os_version) {
|
|||||||
case 'phinx':
|
case 'phinx':
|
||||||
script +=
|
script +=
|
||||||
'composer global require robmorgan/phinx' +
|
'composer global require robmorgan/phinx' +
|
||||||
(yield utils.suppressOutput(os_version));
|
(yield utils.suppressOutput(os_version)) +
|
||||||
|
'\n' +
|
||||||
|
(yield linkTool('phinx', os_version)) +
|
||||||
|
'\n' +
|
||||||
|
(yield utils.addLog('$tick', 'phinx', 'Added', os_version));
|
||||||
break;
|
break;
|
||||||
case 'composer':
|
case 'composer':
|
||||||
script +=
|
script +=
|
||||||
@ -1684,7 +1711,9 @@ function addTools(tools_csv, os_version) {
|
|||||||
case 'prestissimo':
|
case 'prestissimo':
|
||||||
script +=
|
script +=
|
||||||
'composer global require hirak/prestissimo' +
|
'composer global require hirak/prestissimo' +
|
||||||
(yield utils.suppressOutput(os_version));
|
(yield utils.suppressOutput(os_version)) +
|
||||||
|
'\n' +
|
||||||
|
(yield utils.addLog('$tick', 'hirak/prestissimo', 'Added', os_version));
|
||||||
break;
|
break;
|
||||||
case 'pecl':
|
case 'pecl':
|
||||||
script += yield getPECLCommand(os_version);
|
script += yield getPECLCommand(os_version);
|
||||||
|
47
src/tools.ts
47
src/tools.ts
@ -32,6 +32,38 @@ export async function getPECLCommand(os_version: string): Promise<string> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function linkTool(
|
||||||
|
tool: string,
|
||||||
|
os_version: string
|
||||||
|
): Promise<string> {
|
||||||
|
switch (os_version) {
|
||||||
|
case 'linux':
|
||||||
|
case 'darwin':
|
||||||
|
return (
|
||||||
|
'sudo ln -s "$(composer -q global config home)"/vendor/bin/' +
|
||||||
|
tool +
|
||||||
|
' /usr/local/bin/' +
|
||||||
|
tool
|
||||||
|
);
|
||||||
|
case 'win32':
|
||||||
|
return (
|
||||||
|
'$composer_dir = composer -q global config home | % {$_ -replace "/", "\\"}' +
|
||||||
|
'\n' +
|
||||||
|
'Add-Content -Path $PsHome\\profile.ps1 -Value "New-Alias ' +
|
||||||
|
tool +
|
||||||
|
' $composer_dir\\vendor\\bin\\' +
|
||||||
|
tool +
|
||||||
|
'.bat"'
|
||||||
|
);
|
||||||
|
default:
|
||||||
|
return await utils.log(
|
||||||
|
'Platform ' + os_version + ' is not supported',
|
||||||
|
os_version,
|
||||||
|
'error'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setup tools
|
* Setup tools
|
||||||
*
|
*
|
||||||
@ -101,7 +133,11 @@ export async function addTools(
|
|||||||
case 'phinx':
|
case 'phinx':
|
||||||
script +=
|
script +=
|
||||||
'composer global require robmorgan/phinx' +
|
'composer global require robmorgan/phinx' +
|
||||||
(await utils.suppressOutput(os_version));
|
(await utils.suppressOutput(os_version)) +
|
||||||
|
'\n' +
|
||||||
|
(await linkTool('phinx', os_version)) +
|
||||||
|
'\n' +
|
||||||
|
(await utils.addLog('$tick', 'phinx', 'Added', os_version));
|
||||||
break;
|
break;
|
||||||
case 'composer':
|
case 'composer':
|
||||||
script +=
|
script +=
|
||||||
@ -134,7 +170,14 @@ export async function addTools(
|
|||||||
case 'prestissimo':
|
case 'prestissimo':
|
||||||
script +=
|
script +=
|
||||||
'composer global require hirak/prestissimo' +
|
'composer global require hirak/prestissimo' +
|
||||||
(await utils.suppressOutput(os_version));
|
(await utils.suppressOutput(os_version)) +
|
||||||
|
'\n' +
|
||||||
|
(await utils.addLog(
|
||||||
|
'$tick',
|
||||||
|
'hirak/prestissimo',
|
||||||
|
'Added',
|
||||||
|
os_version
|
||||||
|
));
|
||||||
break;
|
break;
|
||||||
case 'pecl':
|
case 'pecl':
|
||||||
script += await getPECLCommand(os_version);
|
script += await getPECLCommand(os_version);
|
||||||
|
Loading…
Reference in New Issue
Block a user