Prove.find.at: def of ezx@1.11.0.0 Import: import ezx@1.11.0.0/src/ez/prove.bend as Prove Lines 22-31 of ezx@1.11.0.0/src/ez/prove.bend: https://jend.leeeet.dev/read.txt?path=ezx@1.11.0.0/src/ez/prove.bend&start_line=22&end_line=31 import Base import snap@1.4.0.0/main.bend as R import ezx@1.11.0.0/src/share/args.bend as Args import ezx@1.11.0.0/src/ez/sorted.bend as Sort # every file of a kind in the tree, sorted, so a run's report is the same twice # over. Base has no readdir, so this is `find`. `.claude` is skipped along with # `.ez`: an agent's worktree is a whole second copy of the repo living inside # it, and running its files would double the gate to check nothing new. def find.at(+what: String, +how: String) -> IO(List<&2, String>): do IO>: out : String <- R.exec(["find", ".", how, what, "-not", "-path", "./.ez/*", "-not", "-path", "./.git/*", "-not", "-path", "./.claude/*"]) return Sort.sort(Args.nonempty(String.lines(R.text(out)))) Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.bind https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.pure https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String.lines https://jend.leeeet.dev/definition.txt?path=ezx@1.11.0.0/src/ez/sorted.bend&name=sort https://jend.leeeet.dev/definition.txt?path=ezx@1.11.0.0/src/share/args.bend&name=nonempty https://jend.leeeet.dev/definition.txt?path=snap@1.4.0.0/main.bend&name=exec https://jend.leeeet.dev/definition.txt?path=snap@1.4.0.0/main.bend&name=text