github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/store/uiresources/reducers.go (about) 1 package uiresources 2 3 import ( 4 "fmt" 5 6 "github.com/tilt-dev/tilt/internal/store" 7 "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" 8 "github.com/tilt-dev/tilt/pkg/logger" 9 "github.com/tilt-dev/tilt/pkg/model" 10 "github.com/tilt-dev/tilt/pkg/model/logstore" 11 ) 12 13 func HandleUIResourceUpsertAction(state *store.EngineState, action UIResourceUpsertAction) { 14 n := action.UIResource.Name 15 old := state.UIResources[n] 16 uir := action.UIResource 17 if old != nil { 18 os := old.Status.DisableStatus.State 19 ns := uir.Status.DisableStatus.State 20 21 verb := "" 22 if os == v1alpha1.DisableStateEnabled && ns == v1alpha1.DisableStateDisabled { 23 verb = "disabled" 24 } else if os == v1alpha1.DisableStateDisabled && ns == v1alpha1.DisableStateEnabled { 25 verb = "enabled" 26 } 27 28 if verb != "" { 29 message := fmt.Sprintf("Resource %q %s. To enable/disable it, use the Tilt Web UI.\n", n, verb) 30 a := store.NewLogAction(model.ManifestName(n), logstore.SpanID(fmt.Sprintf("disabletoggle-%s", n)), logger.InfoLvl, nil, []byte(message)) 31 state.LogStore.Append(a, state.Secrets) 32 } 33 34 ms, ok := state.ManifestState(model.ManifestName(n)) 35 36 if ok { 37 ms.DisableState = uir.Status.DisableStatus.State 38 if len(uir.Status.DisableStatus.Sources) > 0 { 39 if ms.DisableState == v1alpha1.DisableStateDisabled { 40 // since file watches are disabled while a resource is disabled, we can't 41 // have confidence in any previous build state 42 ms.BuildHistory = nil 43 if len(ms.BuildStatuses) > 0 { 44 ms.BuildStatuses = make(map[model.TargetID]*store.BuildStatus) 45 } 46 state.RemoveFromTriggerQueue(ms.Name) 47 } 48 } 49 } 50 51 } 52 53 state.UIResources[n] = uir 54 } 55 56 func HandleUIResourceDeleteAction(state *store.EngineState, action UIResourceDeleteAction) { 57 delete(state.UIResources, action.Name) 58 }