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  }