in hooks, allow replacing placeholders with environment (#3044)

This commit is contained in:
Dan Bason
2024-02-19 09:00:58 +01:00
committed by GitHub
parent 34dbcfb508
commit e8b19b82d5
+8 -3
View File
@@ -4,7 +4,7 @@ package externalcmd
import (
"errors"
"fmt"
"strings"
"os"
"time"
)
@@ -42,10 +42,15 @@ func NewCmd(
) *Cmd {
// replace variables in both Linux and Windows, in order to allow using the
// same commands on both of them.
for key, val := range env {
cmdstr = strings.ReplaceAll(cmdstr, "$"+key, val)
expandEnv := func(variable string) string {
if value, ok := env[variable]; ok {
return value
}
return os.Getenv(variable)
}
cmdstr = os.Expand(cmdstr, expandEnv)
if onExit == nil {
onExit = func(_ error) {}
}