WIP: environment variable manipulation

This commit is contained in:
2025-05-24 22:32:06 +10:00
parent 630e4c2248
commit 6e84adbf16
5 changed files with 119 additions and 101 deletions

View File

@@ -4,12 +4,18 @@ import (
"crypto/sha256"
"encoding/json"
"fmt"
"regexp"
"strings"
"gitea.suyono.dev/suyono/wingmate"
wminit "gitea.suyono.dev/suyono/wingmate/init"
)
var (
envRef = regexp.MustCompile(`\$([a-zA-Z][a-zA-Z0-9]*)`)
)
type config interface {
WMPidProxyPath() string
WMPidProxyCheckVersion() error
@@ -304,6 +310,35 @@ func (t *ServiceTask) Environ() []string {
return retval
}
func (t *ServiceTask) PatchEnv(env []string) []string {
tMap := make(map[string]string)
for _, e := range env {
key, value, ok := strings.Cut(e, "=")
if !ok {
wingmate.Log().Warn().Msgf("removing invalid environment:", e)
continue
}
tMap[key] = value
}
for _, e := range t.environ {
key, value, ok := strings.Cut(e, "=")
if !ok {
wingmate.Log().Warn().Msgf("removing invalid environment:", e)
continue
}
if strings.ContainsAny(key, "$") {
continue
}
//envRef.FindAllString()
_ = value
}
return nil
}
func (t *ServiceTask) Setsid() bool {
return t.setsid
}