diff --git a/tools/rbcrun/host.go b/tools/rbcrun/host.go index f36553e746..8cd2845fae 100644 --- a/tools/rbcrun/host.go +++ b/tools/rbcrun/host.go @@ -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 diff --git a/tools/rbcrun/host_test.go b/tools/rbcrun/host_test.go index 7cfeb14463..38b292376a 100644 --- a/tools/rbcrun/host_test.go +++ b/tools/rbcrun/host_test.go @@ -143,7 +143,7 @@ func TestBzlLoadsScl(t *testing.T) { if err := os.Chdir(filepath.Dir(dir)); err != nil { t.Fatal(err) } - vars, _, err := Run("testdata/bzl_loads_scl.bzl", nil, ExecutionModeScl, false) + vars, _, err := Run("testdata/bzl_loads_scl.bzl", nil, ExecutionModeRbc, false) if err != nil { t.Fatal(err) } @@ -160,7 +160,7 @@ func TestNonEntrypointBzlLoadsScl(t *testing.T) { if err := os.Chdir(filepath.Dir(dir)); err != nil { t.Fatal(err) } - vars, _, err := Run("testdata/bzl_loads_scl_2.bzl", nil, ExecutionModeScl, false) + vars, _, err := Run("testdata/bzl_loads_scl_2.bzl", nil, ExecutionModeRbc, false) if err != nil { t.Fatal(err) }