From 7d730b05e9d5137e51b4841d9d50eb6eb2a32221 Mon Sep 17 00:00:00 2001 From: John Kerl Date: Tue, 15 Mar 2022 23:26:55 -0400 Subject: [PATCH] verb mods --- internal/pkg/transformers/put_or_filter.go | 8 ++++++++ internal/pkg/types/context.go | 6 +++--- todo.txt | 6 ++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/internal/pkg/transformers/put_or_filter.go b/internal/pkg/transformers/put_or_filter.go index 00adbd6e4..040ce4c78 100644 --- a/internal/pkg/transformers/put_or_filter.go +++ b/internal/pkg/transformers/put_or_filter.go @@ -490,6 +490,8 @@ func (tr *TransformerPut) Transform( tr.runtimeState.Update(inrec, &context) + // TODO: check for exit statement; if so, don't process any records ... + // Execute the main block on the current input record outrec, err := tr.cstRootNode.ExecuteMainBlock(tr.runtimeState) if err != nil { @@ -508,6 +510,12 @@ func (tr *TransformerPut) Transform( } } + // Check for exit statement + if tr.runtimeState.ExitInfo.HasExitCode { + inrecAndContext.ExitInfo.HasExitCode = true + inrecAndContext.ExitInfo.ExitCode = tr.runtimeState.ExitInfo.ExitCode + } + } else { tr.runtimeState.Update(nil, &context) diff --git a/internal/pkg/types/context.go b/internal/pkg/types/context.go index d1704626a..07f38b4d4 100644 --- a/internal/pkg/types/context.go +++ b/internal/pkg/types/context.go @@ -33,9 +33,9 @@ func NewExitInfo() *ExitInfo { } type RecordAndContext struct { - Record *mlrval.Mlrmap - Context Context - // TODO: rmeove probably ExitInfo ExitInfo + Record *mlrval.Mlrmap + Context Context + ExitInfo ExitInfo OutputString string EndOfStream bool } diff --git a/todo.txt b/todo.txt index 40fbb3c27..f9437d0bf 100644 --- a/todo.txt +++ b/todo.txt @@ -25,6 +25,12 @@ RELEASES ================================================================ FEATURES +---------------------------------------------------------------- +EXIT STATEMENT + +* handling in begin-blocks? +* handling in the REPL? + ---------------------------------------------------------------- EXTENDED FIELD ACCESSORS