未验证 提交 ae2accf9 编写于 作者: R Rob Lourens

Address #34434 - don't fail when ripgrep exits with 1 and no stderr

上级 01447243
......@@ -230,7 +230,7 @@ export class FileWalker {
cmd = this.spawnFindCmd(folderQuery);
}
this.collectStdout(cmd, 'utf8', (err: Error, stdout?: string, last?: boolean) => {
this.collectStdout(cmd, 'utf8', useRipgrep, (err: Error, stdout?: string, last?: boolean) => {
if (err) {
done(err);
return;
......@@ -354,9 +354,9 @@ export class FileWalker {
/**
* Public for testing.
*/
public readStdout(cmd: childProcess.ChildProcess, encoding: string, cb: (err: Error, stdout?: string) => void): void {
public readStdout(cmd: childProcess.ChildProcess, encoding: string, isRipgrep: boolean, cb: (err: Error, stdout?: string) => void): void {
let all = '';
this.collectStdout(cmd, encoding, (err: Error, stdout?: string, last?: boolean) => {
this.collectStdout(cmd, encoding, isRipgrep, (err: Error, stdout?: string, last?: boolean) => {
if (err) {
cb(err);
return;
......@@ -369,7 +369,7 @@ export class FileWalker {
});
}
private collectStdout(cmd: childProcess.ChildProcess, encoding: string, cb: (err: Error, stdout?: string, last?: boolean) => void): void {
private collectStdout(cmd: childProcess.ChildProcess, encoding: string, isRipgrep: boolean, cb: (err: Error, stdout?: string, last?: boolean) => void): void {
let done = (err: Error, stdout?: string, last?: boolean) => {
if (err || last) {
done = () => { };
......@@ -386,7 +386,8 @@ export class FileWalker {
});
cmd.on('close', (code: number) => {
if (code !== 0) {
// ripgrep returns code=1 when no results are found
if (code !== 0 && ((isRipgrep && stderr.length) || !isRipgrep)) {
done(new Error(`command failed with error code ${code}: ${this.decodeData(stderr, encoding)}`));
} else {
done(null, '', true);
......
......@@ -403,6 +403,10 @@ function globExprsToRgGlobs(patterns: glob.IExpression, folder?: string, exclude
return;
}
if (!key) {
return;
}
const value = patterns[key];
key = trimTrailingSlash(folder ? getAbsoluteGlob(folder, key) : key);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册