From 2b1cf4576a779eba56ef81022a18ed96b037fd7e Mon Sep 17 00:00:00 2001 From: Dan Bentley Date: Wed, 9 Jan 2019 15:31:26 -0500 Subject: [PATCH] .: fix a few bugs (#961) --- internal/engine/upper.go | 4 ++++ internal/hud/hud.go | 4 +++- internal/model/globalyaml.go | 2 +- internal/rty/scroll.go | 9 +++++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/internal/engine/upper.go b/internal/engine/upper.go index 9955ae58b7..5018341932 100644 --- a/internal/engine/upper.go +++ b/internal/engine/upper.go @@ -400,6 +400,10 @@ func handleConfigsReloaded( Reason: model.BuildReasonFlagConfig, } setLastTiltfileBuild(state, status) + if event.Err != nil { + // There was an error, so don't update status with the new, nonexistent state + return + } newDefOrder := make([]model.ManifestName, len(manifests)) for i, m := range manifests { diff --git a/internal/hud/hud.go b/internal/hud/hud.go index 4ab7eaf984..615f38532f 100644 --- a/internal/hud/hud.go +++ b/internal/hud/hud.go @@ -194,7 +194,9 @@ func (h *Hud) handleScreenEvent(ctx context.Context, dispatch func(action store. am := h.activeModal() if am == nil { selectedIdx, r := h.selectedResource() - + if selectedIdx == 0 { + break + } if r.IsYAML() { h.currentViewState.AlertMessage = fmt.Sprintf("YAML Resources don't have logs") break diff --git a/internal/model/globalyaml.go b/internal/model/globalyaml.go index 1db74d7660..1dcba9a7ed 100644 --- a/internal/model/globalyaml.go +++ b/internal/model/globalyaml.go @@ -1,7 +1,7 @@ package model // TODO(maia): throw an error if you try to name a manifest this in your Tiltfile? -const GlobalYAMLManifestName = ManifestName("GlobalYAML") +const GlobalYAMLManifestName = ManifestName("k8s_yaml") type YAMLManifest struct { name ManifestName diff --git a/internal/rty/scroll.go b/internal/rty/scroll.go index f6d4faa7b6..04a3b6a066 100644 --- a/internal/rty/scroll.go +++ b/internal/rty/scroll.go @@ -408,6 +408,10 @@ func adjustElementScroll(prevInt interface{}, newChildren []string) (*ElementScr next := &clone next.children = newChildren + if len(newChildren) == 0 { + next.elementIdx = 0 + return next, "" + } if len(prev.children) == 0 { sel := "" if len(next.children) > 0 { @@ -415,6 +419,11 @@ func adjustElementScroll(prevInt interface{}, newChildren []string) (*ElementScr } return next, sel } + if prev.elementIdx >= len(prev.children) { + // NB(dbentley): this should be impossible, but we were hitting it and it was crashing + next.elementIdx = 0 + return next, "" + } prevChild := prev.children[prev.elementIdx] for i, child := range newChildren { if child == prevChild {