From 0f599207cf8716340e9f90c4327635ddabe528a1 Mon Sep 17 00:00:00 2001 From: sawka Date: Mon, 2 Jan 2023 12:09:19 -0800 Subject: [PATCH] clear can either archive or purge lines --- pkg/cmdrunner/cmdrunner.go | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/pkg/cmdrunner/cmdrunner.go b/pkg/cmdrunner/cmdrunner.go index f462326f9..7bd39717b 100644 --- a/pkg/cmdrunner/cmdrunner.go +++ b/pkg/cmdrunner/cmdrunner.go @@ -1665,15 +1665,28 @@ func ClearCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore if err != nil { return nil, err } - update, err := sstore.ClearWindow(ctx, ids.SessionId, ids.WindowId) - if err != nil { - return nil, fmt.Errorf("clearing window: %v", err) + if resolveBool(pk.Kwargs["purge"], false) { + update, err := sstore.PurgeWindowLines(ctx, ids.SessionId, ids.WindowId) + if err != nil { + return nil, fmt.Errorf("clearing window: %v", err) + } + update.Info = &sstore.InfoMsgType{ + InfoMsg: fmt.Sprintf("window cleared (all lines purged)"), + TimeoutMs: 2000, + } + return update, nil + } else { + update, err := sstore.ArchiveWindowLines(ctx, ids.SessionId, ids.WindowId) + if err != nil { + return nil, fmt.Errorf("clearing window: %v", err) + } + update.Info = &sstore.InfoMsgType{ + InfoMsg: fmt.Sprintf("window cleared"), + TimeoutMs: 2000, + } + return update, nil } - update.Info = &sstore.InfoMsgType{ - InfoMsg: fmt.Sprintf("window cleared"), - TimeoutMs: 2000, - } - return update, nil + } const DefaultMaxHistoryItems = 10000