From b01ffcf541bf4c7a2a0b37fb49e8ae52d355a4e4 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Mon, 26 Jun 2017 12:37:05 +0200 Subject: [PATCH] Fixes #28489: Bug with tasks in realease 1.13 --- .../parts/tasks/node/taskConfiguration.ts | 32 ++++++++++--------- .../electron-browser/configuration.test.ts | 26 +++++++++++++++ 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/src/vs/workbench/parts/tasks/node/taskConfiguration.ts b/src/vs/workbench/parts/tasks/node/taskConfiguration.ts index fb1890b0229..89476e36fc6 100644 --- a/src/vs/workbench/parts/tasks/node/taskConfiguration.ts +++ b/src/vs/workbench/parts/tasks/node/taskConfiguration.ts @@ -854,26 +854,28 @@ namespace CommandConfiguration { runtime: undefined, presentation: undefined }; - fillProperty(target, source, 'name'); + if (target.name === void 0) { + fillProperty(target, source, 'name'); + fillProperty(target, source, 'taskSelector'); + fillProperty(target, source, 'suppressTaskName'); + let args: string[] = source.args ? source.args.slice() : []; + if (!target.suppressTaskName) { + if (target.taskSelector !== void 0) { + args.push(target.taskSelector + taskName); + } else { + args.push(taskName); + } + } + if (target.args) { + args = args.concat(target.args); + } + target.args = args; + } fillProperty(target, source, 'runtime'); - fillProperty(target, source, 'taskSelector'); - fillProperty(target, source, 'suppressTaskName'); target.presentation = PresentationOptions.fillProperties(target.presentation, source.presentation); target.options = CommandOptions.fillProperties(target.options, source.options); - let args: string[] = source.args ? source.args.slice() : []; - if (!target.suppressTaskName) { - if (target.taskSelector !== void 0) { - args.push(target.taskSelector + taskName); - } else { - args.push(taskName); - } - } - if (target.args) { - args = args.concat(target.args); - } - target.args = args; return target; } diff --git a/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts b/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts index c2a4d6826e0..e2041c06c6d 100644 --- a/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts +++ b/src/vs/workbench/parts/tasks/test/electron-browser/configuration.test.ts @@ -1530,4 +1530,30 @@ suite('Bugs / regression tests', () => { testConfiguration(external, builder); } }); + + test('Bug 28489', () => { + let external = { + version: '0.1.0', + command: '', + isShellCommand: true, + args: [''], + showOutput: 'always', + 'tasks': [ + { + taskName: 'build', + command: 'bash', + args: [ + 'build.sh' + ] + } + ] + }; + let builder = new ConfiguationBuilder(); + builder.task('build', 'bash'). + group(Tasks.TaskGroup.Build). + command().suppressTaskName(true). + args(['build.sh']). + runtime(Tasks.RuntimeType.Shell); + testConfiguration(external, builder); + }); }); \ No newline at end of file