未验证 提交 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 { ...@@ -230,7 +230,7 @@ export class FileWalker {
cmd = this.spawnFindCmd(folderQuery); 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) { if (err) {
done(err); done(err);
return; return;
...@@ -354,9 +354,9 @@ export class FileWalker { ...@@ -354,9 +354,9 @@ export class FileWalker {
/** /**
* Public for testing. * 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 = ''; 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) { if (err) {
cb(err); cb(err);
return; return;
...@@ -369,7 +369,7 @@ export class FileWalker { ...@@ -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) => { let done = (err: Error, stdout?: string, last?: boolean) => {
if (err || last) { if (err || last) {
done = () => { }; done = () => { };
...@@ -386,7 +386,8 @@ export class FileWalker { ...@@ -386,7 +386,8 @@ export class FileWalker {
}); });
cmd.on('close', (code: number) => { 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)}`)); done(new Error(`command failed with error code ${code}: ${this.decodeData(stderr, encoding)}`));
} else { } else {
done(null, '', true); done(null, '', true);
......
...@@ -403,6 +403,10 @@ function globExprsToRgGlobs(patterns: glob.IExpression, folder?: string, exclude ...@@ -403,6 +403,10 @@ function globExprsToRgGlobs(patterns: glob.IExpression, folder?: string, exclude
return; return;
} }
if (!key) {
return;
}
const value = patterns[key]; const value = patterns[key];
key = trimTrailingSlash(folder ? getAbsoluteGlob(folder, key) : 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.
先完成此消息的编辑!
想要评论请 注册