check for concreteness in specialized types

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2021-12-07 14:03:07 -05:00
parent 6aa4f6b8b3
commit 201ac391b4
7 changed files with 57 additions and 70 deletions

View File

@@ -60,6 +60,21 @@ var listCmd = &cobra.Command{
isConcrete := (inp.IsConcreteR() == nil)
_, hasDefault := inp.Default()
switch {
case env.Context().Secrets.Contains(inp):
if _, err := env.Context().Secrets.FromValue(inp); err != nil {
isConcrete = false
}
case env.Context().FS.Contains(inp):
if _, err := env.Context().FS.FromValue(inp); err != nil {
isConcrete = false
}
case env.Context().Services.Contains(inp):
if _, err := env.Context().Services.FromValue(inp); err != nil {
isConcrete = false
}
}
if !viper.GetBool("all") {
// skip input that is not overridable
if !hasDefault && isConcrete {

View File

@@ -140,7 +140,23 @@ func checkInputs(ctx context.Context, env *environment.Environment) error {
}
for _, i := range inputs {
if i.IsConcreteR(cue.Optional(true)) != nil {
isConcrete := (i.IsConcreteR(cue.Optional(true)) == nil)
switch {
case env.Context().Secrets.Contains(i):
if _, err := env.Context().Secrets.FromValue(i); err != nil {
isConcrete = false
}
case env.Context().FS.Contains(i):
if _, err := env.Context().FS.FromValue(i); err != nil {
isConcrete = false
}
case env.Context().Services.Contains(i):
if _, err := env.Context().Services.FromValue(i); err != nil {
isConcrete = false
}
}
if !isConcrete {
notConcreteInputs = append(notConcreteInputs, i)
}
}