mirror of
https://github.com/docker/cli.git
synced 2026-01-13 18:22:35 +03:00
Make sure we error out instead of panic during interpolation
Use type assertion to error out if the type isn't the right one instead of panic as before this change. Signed-off-by: Vincent Demeester <vincent@sbr.pm> Upstream-commit: c165a8bfa1419724eb504f3cb7fdf3ca1b97483b Component: engine
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
package interpolation
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/docker/docker/cli/compose/template"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// Interpolate replaces variables in a string with the values from a mapping
|
||||
@@ -15,7 +14,11 @@ func Interpolate(config map[string]interface{}, section string, mapping template
|
||||
out[name] = nil
|
||||
continue
|
||||
}
|
||||
interpolatedItem, err := interpolateSectionItem(name, item.(map[string]interface{}), section, mapping)
|
||||
mapItem, ok := item.(map[string]interface{})
|
||||
if !ok {
|
||||
return nil, errors.Errorf("Invalid type for %s : %T instead of %T", name, item, out)
|
||||
}
|
||||
interpolatedItem, err := interpolateSectionItem(name, mapItem, section, mapping)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -37,7 +40,7 @@ func interpolateSectionItem(
|
||||
for key, value := range item {
|
||||
interpolatedValue, err := recursiveInterpolate(value, mapping)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf(
|
||||
return nil, errors.Errorf(
|
||||
"Invalid interpolation format for %#v option in %s %#v: %#v. You may need to escape any $ with another $.",
|
||||
key, section, name, err.Template,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user