init: pristine aerc 0.20.0 source
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package hooks
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"os"
|
||||
"os/exec"
|
||||
|
||||
"git.sr.ht/~rjarry/aerc/lib/log"
|
||||
)
|
||||
|
||||
func RunHook(h HookType) error {
|
||||
cmd := h.Cmd()
|
||||
if cmd == "" {
|
||||
return nil
|
||||
}
|
||||
env := h.Env()
|
||||
log.Debugf("hooks: running command %q (env %v)", cmd, env)
|
||||
|
||||
proc := exec.Command("sh", "-c", cmd)
|
||||
var outb, errb bytes.Buffer
|
||||
proc.Stdout = &outb
|
||||
proc.Stderr = &errb
|
||||
proc.Env = os.Environ()
|
||||
proc.Env = append(proc.Env, env...)
|
||||
err := proc.Run()
|
||||
log.Tracef("hooks: %q stdout: %s", cmd, outb.String())
|
||||
if err != nil {
|
||||
log.Errorf("hooks:%q stderr: %s", cmd, errb.String())
|
||||
}
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user