23 lines
578 B
Go
23 lines
578 B
Go
package runner
|
|
|
|
import (
|
|
"bytes"
|
|
"os/exec"
|
|
)
|
|
|
|
// FdListFiles runs fd to find files/dirs matching pattern under path.
|
|
// extraArgs are passed directly to fd (e.g. "--type", "f").
|
|
func FdListFiles(pattern, path string, extraArgs ...string) ([]string, error) {
|
|
args := append([]string{pattern, path}, extraArgs...)
|
|
cmd := exec.Command("fd", args...)
|
|
var out bytes.Buffer
|
|
cmd.Stdout = &out
|
|
if err := cmd.Run(); err != nil {
|
|
if cmd.ProcessState != nil && cmd.ProcessState.ExitCode() == 1 {
|
|
return nil, nil
|
|
}
|
|
return nil, err
|
|
}
|
|
return splitLines(out.String()), nil
|
|
}
|