mirror of
https://github.com/containers/podman.git
synced 2025-10-15 02:06:42 +08:00
Merge pull request #26322 from NotSoFancyName/issue-26247
quadlet: handle generate environment params that inherit from host
This commit is contained in:
@ -839,9 +839,9 @@ func (f *UnitFile) LookupLastArgs(groupName string, key string) ([]string, bool)
|
||||
}
|
||||
|
||||
// Look up 'Environment' style key-value keys
|
||||
func (f *UnitFile) LookupAllKeyVal(groupName string, key string) (map[string]string, error) {
|
||||
func (f *UnitFile) LookupAllKeyVal(groupName string, key string) (map[string]*string, error) {
|
||||
var warnings error
|
||||
res := make(map[string]string)
|
||||
res := make(map[string]*string)
|
||||
allKeyvals := f.LookupAll(groupName, key)
|
||||
for _, keyvals := range allKeyvals {
|
||||
assigns, err := splitString(keyvals, WhitespaceSeparators, SplitRelax|SplitUnquote|SplitCUnescape)
|
||||
@ -852,9 +852,9 @@ func (f *UnitFile) LookupAllKeyVal(groupName string, key string) (map[string]str
|
||||
for _, assign := range assigns {
|
||||
key, value, found := strings.Cut(assign, "=")
|
||||
if found {
|
||||
res[key] = value
|
||||
res[key] = &value
|
||||
} else {
|
||||
warnings = errors.Join(warnings, fmt.Errorf("separator was not found for %s", assign))
|
||||
res[key] = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ func (c *PodmanCmdline) addf(format string, a ...interface{}) {
|
||||
c.add(fmt.Sprintf(format, a...))
|
||||
}
|
||||
|
||||
func (c *PodmanCmdline) addKeys(arg string, keys map[string]string) {
|
||||
func (c *PodmanCmdline) addKeys(arg string, keys map[string]*string) {
|
||||
ks := make([]string, 0, len(keys))
|
||||
for k := range keys {
|
||||
ks = append(ks, k)
|
||||
@ -41,7 +41,11 @@ func (c *PodmanCmdline) addKeys(arg string, keys map[string]string) {
|
||||
sort.Strings(ks)
|
||||
|
||||
for _, k := range ks {
|
||||
c.add(arg, fmt.Sprintf("%s=%s", k, keys[k]))
|
||||
if keys[k] != nil {
|
||||
c.add(arg, fmt.Sprintf("%s=%s", k, *keys[k]))
|
||||
} else {
|
||||
c.add(arg, k)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -811,8 +811,8 @@ func ConvertContainer(container *parser.UnitFile, isUser bool, unitsInfoMap map[
|
||||
if ok && len(update) > 0 {
|
||||
podman.addKeys(
|
||||
"--label",
|
||||
map[string]string{
|
||||
autoUpdateLabel: update,
|
||||
map[string]*string{
|
||||
autoUpdateLabel: &update,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
@ -4,9 +4,10 @@
|
||||
## assert-podman-args --env "FOO3=foo3"
|
||||
## assert-podman-args --env "REPLACE=replaced"
|
||||
## assert-podman-args --env "FOO4=foo\\nfoo"
|
||||
## assert-podman-args --env "FOO5"
|
||||
|
||||
[Container]
|
||||
Image=localhost/imagename
|
||||
Environment=FOO1=foo1 "FOO2=foo2 " \
|
||||
FOO3=foo3 REPLACE=replace
|
||||
Environment=REPLACE=replaced 'FOO4=foo\nfoo'
|
||||
Environment=REPLACE=replaced 'FOO4=foo\nfoo' FOO5
|
||||
|
Reference in New Issue
Block a user