mirror of
				https://github.com/shivammathur/setup-php.git
				synced 2025-11-04 17:06:37 +07:00 
			
		
		
		
	Link tools installed using composer
This commit is contained in:
		@ -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);
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user