3 ms·
Not the original poster, but if I were doing it with find rather than fd (or ag or rg, which I think can do it without fd or find) I'd do (untested) (find
by kragen 1y ago
Not the original poster, but if I were doing it with find rather than fd (or ag or rg, which I think can do it without fd or find) I'd do (untested)
(find "$projroot" -name .git -prune -o -name node_modules -prune -o \
\( -name '*.[tj]s' -o -name '*.[tj]sx' \) -print0 ;
find "$projroot"/node_modules \
\( -name '*.[tj]s' -o -name '*.[tj]sx' \) -print0 ;
find "$projroot" -name .git -prune -o -name dist -prune -o \
\( -name '*.py' \) -print0 ) |
xargs -0 grep /dev/null "$search_pattern"
And, although that approach does work (and maybe even that script will work without any bug fixes) it probably goes a substantial distance toward showing why fd was written.
Doing the three searches separately and exiting after one succeeds is only slightly more code.