github.com/tilt-dev/tilt@v0.36.0/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 if ok { 36 ms.DisableState = uir.Status.DisableStatus.State 37 if len(uir.Status.DisableStatus.Sources) > 0 { 38 if ms.DisableState == v1alpha1.DisableStateDisabled { 39 // since file watches are disabled while a resource is disabled, we can't 40 // have confidence in any previous build state 41 ms.BuildHistory = nil 42 if mt, ok := state.ManifestTargets[ms.Name]; ok { 43 ms.ResetBuildStatus(mt.Manifest) 44 } else if _, ok := state.TiltfileStates[ms.Name]; ok { 45 ms.ResetTiltfileBuildStatus(ms.Name) 46 } 47 state.RemoveFromTriggerQueue(ms.Name) 48 } 49 } 50 } 51 52 } 53 54 state.UIResources[n] = uir 55 } 56 57 func HandleUIResourceDeleteAction(state *store.EngineState, action UIResourceDeleteAction) { 58 delete(state.UIResources, action.Name) 59 }