]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
common/hexec: Fall back to the binary in PATH if npx fails
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 22 Jun 2024 09:49:30 +0000 (11:49 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 22 Jun 2024 10:25:02 +0000 (12:25 +0200)
Closes #12486

common/hexec/exec.go

index 12775bd1ce8b9de8d1977979f26655f98a990dc9..49291354dd0fb3a651a3ca0675ef84f771138ce3 100644 (file)
@@ -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, 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...)
 }