Require scl files in ExecutionModeScl

Also remove json from scl file builtins, as it's not in bazel.

Bug: 309686282
Test: Presubmits
Change-Id: I6227c5dc14922b4682380254b4716b4ae38c47b9
This commit is contained in:
Cole Faust
2023-11-13 11:21:08 -08:00
parent 001ed67bba
commit 6309234411
2 changed files with 6 additions and 4 deletions

View File

@@ -24,7 +24,6 @@ import (
"strings"
"go.starlark.net/starlark"
"go.starlark.net/starlarkjson"
"go.starlark.net/starlarkstruct"
)
@@ -60,7 +59,6 @@ var rbcBuiltins starlark.StringDict = starlark.StringDict{
var sclBuiltins starlark.StringDict = starlark.StringDict{
"struct": starlark.NewBuiltin("struct", starlarkstruct.Make),
"json": starlarkjson.Module,
}
func isSymlink(filepath string) (bool, error) {
@@ -389,6 +387,10 @@ func Run(filename string, src interface{}, mode ExecutionMode, allowExternalEntr
return nil, nil, err
}
if mode == ExecutionModeScl && !strings.HasSuffix(filename, ".scl") {
return nil, nil, fmt.Errorf("filename must end in .scl: %s", filename)
}
// Add top-level file to cache for cycle detection purposes
moduleCache[filename] = nil