mirror of
https://github.com/foomo/posh.git
synced 2026-06-28 21:50:09 +00:00
20 lines
309 B
Go
20 lines
309 B
Go
package exec
|
|
|
|
import (
|
|
"context"
|
|
"os/exec"
|
|
"slices"
|
|
)
|
|
|
|
func Run(ctx context.Context, cmd *exec.Cmd, middlewares ...Middleware) error {
|
|
run := func(_ context.Context, cmd *exec.Cmd) error {
|
|
return cmd.Run()
|
|
}
|
|
|
|
for _, v := range slices.Backward(middlewares) {
|
|
run = v(run)
|
|
}
|
|
|
|
return run(ctx, cmd)
|
|
}
|