Fix windows findFile

This commit is contained in:
Ganesh Viswanathan 2019-10-06 19:47:45 -07:00
commit 5f13dbe202

View file

@ -263,7 +263,7 @@ proc findFile*(file: string, dir: string, recurse = true, first = false, regex =
var var
cmd = cmd =
when defined(windows): when defined(windows):
"nimgrep --filenames --oneline --nocolor $1 $2 $3" "nimgrep --filenames --nocolor $1 $2 $3"
elif defined(linux): elif defined(linux):
"find $3 $1 -regextype egrep -regex $2" "find $3 $1 -regextype egrep -regex $2"
elif defined(osx): elif defined(osx):
@ -283,7 +283,7 @@ proc findFile*(file: string, dir: string, recurse = true, first = false, regex =
dir = dir / file.parentDir() dir = dir / file.parentDir()
file = file.extractFilename file = file.extractFilename
cmd = cmd % [recursive, (".*[\\/]" & file & "$").quoteShell, dir.sanitizePath] cmd = cmd % [recursive, (".*[\\\\/]" & file & "$").quoteShell, dir.sanitizePath]
let let
(files, ret) = gorgeEx(cmd) (files, ret) = gorgeEx(cmd)
@ -291,14 +291,14 @@ proc findFile*(file: string, dir: string, recurse = true, first = false, regex =
for line in files.splitLines(): for line in files.splitLines():
let f = let f =
when defined(windows): when defined(windows):
if ":" in line: if line.len != 0 and line[0] != ' ' and line[^7 .. ^1] != "matches":
line.split(":", maxsplit = 1)[0] line
else: else:
"" ""
else: else:
line line
if (f.len != 0 and result.len == 0 or result.len > f.len): if (f.len != 0 and (result.len == 0 or result.len > f.len)):
result = f result = f
if first: break if first: break