Merge pull request #35 from badsyntax/fix-tasks-err-handling

Fix refresh task error handling
This commit is contained in:
Richard Willis 2019-11-07 21:13:34 +01:00 коммит произвёл GitHub
Родитель 7548430743 6fb3301b39
Коммит 81ae8dd229
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 17 добавлений и 18 удалений

Просмотреть файл

@ -1,5 +1,9 @@
# Change Log
## 2.1.4
- Fix refresh tasks error handling
## 2.1.3
- Fix gradle tasks parsing #19

Просмотреть файл

@ -166,21 +166,6 @@ async function detectGradleTasks(
}
}
export async function detectGradleTasksForFolder(
folder: Uri,
statusBarItem: StatusBarItem,
outputChannel: OutputChannel
): Promise<FolderTaskItem[]> {
const folderTasks: FolderTaskItem[] = [];
const tasks = await provideGradleTasksForFolder(
folder,
statusBarItem,
outputChannel
);
folderTasks.push(...tasks.map(task => ({ label: task.name, task })));
return folderTasks;
}
export async function provideGradleTasks(
statusBarItem: StatusBarItem,
outputChannel: OutputChannel
@ -356,17 +341,27 @@ function spawn(
outputChannel.append(`Executing: ${command}\n`);
}
return new Promise((resolve, reject) => {
const buffers: Buffer[] = [];
const stdoutBuffers: Buffer[] = [];
const stderrBuffers: Buffer[] = [];
const child = cp.spawn(command, args, options);
child.stdout.on('data', (b: Buffer) => buffers.push(b));
child.stdout.on('data', (b: Buffer) => stdoutBuffers.push(b));
child.stderr.on('data', (b: Buffer) => stderrBuffers.push(b));
child.on('error', reject);
child.on('exit', (code: number) => {
if (code === 0) {
resolve(
Buffer.concat(buffers)
Buffer.concat(stdoutBuffers)
.toString('utf8')
.trim()
);
} else {
reject(
new Error(
Buffer.concat(stderrBuffers)
.toString('utf8')
.trim()
)
);
}
});
});