WIP: environment variable manipulation
This commit is contained in:
35
task/task.go
35
task/task.go
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user