aboutsummaryrefslogtreecommitdiff
path: root/internal/engine/engine.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/engine/engine.go')
-rw-r--r--internal/engine/engine.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/engine/engine.go b/internal/engine/engine.go
index 00a249d..958e4f9 100644
--- a/internal/engine/engine.go
+++ b/internal/engine/engine.go
@@ -177,6 +177,11 @@ func Load(mainFile string, names ...string) (*Engine, []*config.Diag) {
func checkCaptures(file string, r *config.Rule, c *cond.Cond) *config.Diag {
groups := c.NameGroups()
for _, a := range r.Actions {
+ if err := plan.CheckTemplate(a.Arg); err != nil {
+ // A placeholder that could never expand is a config error, not a
+ // step skipped at plan time (plan 12).
+ return &config.Diag{File: file, Pos: a.Pos, Msg: fmt.Sprintf("rule %q: %v", r.Name, err)}
+ }
n, err := plan.MaxIndex(a.Arg)
if err != nil || n == 0 {
continue