Auto-detect backend to use
This commit is contained in:
parent
72504309cc
commit
903ae85abc
1 changed files with 11 additions and 4 deletions
15
pyesearch.py
15
pyesearch.py
|
@ -3,6 +3,7 @@
|
|||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
import shutil
|
||||
from glob import glob
|
||||
import re
|
||||
|
||||
|
@ -78,28 +79,34 @@ def list_from_print0(data):
|
|||
]
|
||||
|
||||
|
||||
FIND_CMD = shutil.which("find")
|
||||
def find(query, paths, depth=None):
|
||||
depth_args = ["-mindepth", f"{depth}", "-maxdepth", f"{depth}"] if depth is not None else []
|
||||
|
||||
proc = subprocess.run(
|
||||
["find", *paths, *depth_args, "-iname", f"*{query}*.ebuild", "-print0"],
|
||||
[FIND_CMD, *paths, *depth_args, "-iname", f"*{query}*.ebuild", "-print0"],
|
||||
check=True, stdout=subprocess.PIPE
|
||||
)
|
||||
return list_from_print0(proc.stdout)
|
||||
|
||||
|
||||
FD_CMD = shutil.which("fd")
|
||||
def fd(query, paths, depth):
|
||||
depth_args = [f"--exact-depth={depth}"] if depth is not None else []
|
||||
|
||||
proc = subprocess.run(
|
||||
["fd", *depth_args, "--print0", "--extension=ebuild", "--", query, *paths],
|
||||
[FD_CMD, *depth_args, "--print0", "--extension=ebuild", "--", query, *paths],
|
||||
check=True, stdout=subprocess.PIPE
|
||||
)
|
||||
return list_from_print0(proc.stdout)
|
||||
|
||||
|
||||
# search_backend = find
|
||||
search_backend = fd
|
||||
if FD_CMD is not None:
|
||||
search_backend = fd
|
||||
elif FIND_CMD is not None:
|
||||
search_backend = find
|
||||
else:
|
||||
raise Exception("Neither `fd` nor `find` found in PATH")
|
||||
|
||||
|
||||
# Ebuild reading
|
||||
|
|
Loading…
Reference in a new issue