Skip to content

Commit

Permalink
common/hexec: Fall back to the binary in PATH if npx fails
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Jun 22, 2024
1 parent af0cb57 commit d74758f
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion common/hexec/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,18 @@ func (e *Exec) New(name string, arg ...any) (Runner, error) {
return cm.command(arg...)
}

// Npx is a convenience method to create a Runner running npx --no-install <name> <args.
// Npx will try to run npx, and if that fails with a NotFound error, it will
// try to run the binary directly.
func (e *Exec) Npx(name string, arg ...any) (Runner, error) {
r, err := e.npx(name, arg...)
if err == nil {
return r, nil
}
return e.New(name, arg...)
}

// npx is a convenience method to create a Runner running npx --no-install <name> <args.
func (e *Exec) npx(name string, arg ...any) (Runner, error) {
arg = append(arg[:0], append([]any{"--no-install", name}, arg[0:]...)...)
return e.New("npx", arg...)
}
Expand Down

0 comments on commit d74758f

Please sign in to comment.