github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/engine/subscribers.go (about) 1 package engine 2 3 import ( 4 "github.com/tilt-dev/tilt/internal/cloud" 5 "github.com/tilt-dev/tilt/internal/controllers" 6 "github.com/tilt-dev/tilt/internal/engine/analytics" 7 "github.com/tilt-dev/tilt/internal/engine/configs" 8 "github.com/tilt-dev/tilt/internal/engine/dockerprune" 9 "github.com/tilt-dev/tilt/internal/engine/k8srollout" 10 "github.com/tilt-dev/tilt/internal/engine/k8swatch" 11 "github.com/tilt-dev/tilt/internal/engine/local" 12 "github.com/tilt-dev/tilt/internal/engine/session" 13 "github.com/tilt-dev/tilt/internal/engine/telemetry" 14 "github.com/tilt-dev/tilt/internal/engine/uiresource" 15 "github.com/tilt-dev/tilt/internal/engine/uisession" 16 "github.com/tilt-dev/tilt/internal/hud" 17 "github.com/tilt-dev/tilt/internal/hud/prompt" 18 "github.com/tilt-dev/tilt/internal/hud/server" 19 "github.com/tilt-dev/tilt/internal/store" 20 ) 21 22 // Subscribers that only read from the new Tilt API, 23 // and run the API server. 24 func ProvideSubscribersAPIOnly( 25 hudsc *server.HeadsUpServerController, 26 tscm *controllers.TiltServerControllerManager, 27 cb *controllers.ControllerBuilder, 28 ts *hud.TerminalStream, 29 ) []store.Subscriber { 30 return []store.Subscriber{ 31 // The API server must go before other subscribers, 32 // so that it can run its boot sequence first. 33 hudsc, 34 35 // The controller manager must go after the API server, 36 // so that it can connect to it and make resources available. 37 tscm, 38 cb, 39 ts, 40 } 41 } 42 43 func ProvideSubscribers( 44 hudsc *server.HeadsUpServerController, 45 tscm *controllers.TiltServerControllerManager, 46 cb *controllers.ControllerBuilder, 47 hud hud.HeadsUpDisplay, 48 ts *hud.TerminalStream, 49 tp *prompt.TerminalPrompt, 50 sw *k8swatch.ServiceWatcher, 51 bc *BuildController, 52 cc *configs.ConfigsController, 53 tqs *configs.TriggerQueueSubscriber, 54 ar *analytics.AnalyticsReporter, 55 au *analytics.AnalyticsUpdater, 56 ewm *k8swatch.EventWatchManager, 57 tcum *cloud.CloudStatusManager, 58 dp *dockerprune.DockerPruner, 59 tc *telemetry.Controller, 60 lsc *local.ServerController, 61 podm *k8srollout.PodMonitor, 62 sc *session.Controller, 63 uss *uisession.Subscriber, 64 urs *uiresource.Subscriber, 65 ) []store.Subscriber { 66 apiSubscribers := ProvideSubscribersAPIOnly(hudsc, tscm, cb, ts) 67 68 legacySubscribers := []store.Subscriber{ 69 hud, 70 tp, 71 sw, 72 bc, 73 cc, 74 tqs, 75 ar, 76 au, 77 ewm, 78 tcum, 79 dp, 80 tc, 81 lsc, 82 podm, 83 sc, 84 uss, 85 urs, 86 } 87 return append(apiSubscribers, legacySubscribers...) 88 }