@@ -201,30 +201,49 @@ func (cmd *ServiceRunCommand) Run(app server.Cmd) error {
201201
202202func (cmd * ServiceRun2Command ) Run (app server.Cmd ) error {
203203 // Create a provider by loading the plugins
204- provider , err := provider .NewWithPlugins (nil , cmd .Plugins ... )
204+ provider , err := provider .NewWithPlugins (cmd .Plugins ... )
205205 if err != nil {
206206 return err
207207 }
208208
209- // Create configurations
210- err = errors .Join (err , provider .Load ("log" , "main" , func (config server.Plugin ) {
209+ // Set the configuration
210+ err = errors .Join (err , provider .Load ("log" , "main" , func (ctx context. Context , config server.Plugin ) {
211211 logger := config .(* logger.Config )
212212 logger .Debug = app .GetDebug () >= server .Debug
213213 }))
214- err = errors .Join (err , provider .Load ("httprouter" , "main" , func (config server.Plugin ) {
214+ err = errors .Join (err , provider .Load ("httprouter" , "main" , func (ctx context. Context , config server.Plugin ) {
215215 httprouter := config .(* httprouter.Config )
216- httprouter .Origin = "*"
217216 httprouter .Prefix = types .NormalisePath (app .GetEndpoint ().Path )
217+ httprouter .Origin = "*"
218+ httprouter .Middleware = []string {"log.main" }
218219 }))
219- err = errors .Join (err , provider .Load ("httpserver" , "main" , func (config server.Plugin ) {
220+ err = errors .Join (err , provider .Load ("httpserver" , "main" , func (ctx context. Context , config server.Plugin ) {
220221 httpserver := config .(* httpserver.Config )
221222 httpserver .Listen = app .GetEndpoint ()
223+ httpserver .Router = provider .Task (ctx , "httprouter.main" ).(http.Handler )
224+ }))
225+ err = errors .Join (err , provider .Load ("helloworld" , "main" , func (ctx context.Context , config server.Plugin ) {
226+ // NO-OP
227+ }))
228+ err = errors .Join (err , provider .Load ("pgpool" , "main" , func (ctx context.Context , config server.Plugin ) {
229+ pgpool := config .(* pg.Config )
230+ pgpool .Router = provider .Task (ctx , "httprouter.main" ).(server.HTTPRouter )
231+ }))
232+ err = errors .Join (err , provider .Load ("auth" , "main" , func (ctx context.Context , config server.Plugin ) {
233+ auth := config .(* auth.Config )
234+ auth .Pool = provider .Task (ctx , "pgpool.main" ).(server.PG )
235+ auth .Router = provider .Task (ctx , "httprouter.main" ).(server.HTTPRouter )
236+ }))
237+ err = errors .Join (err , provider .Load ("pgqueue" , "main" , func (ctx context.Context , config server.Plugin ) {
238+ pgqueue := config .(* pgqueue.Config )
239+ pgqueue .Pool = provider .Task (ctx , "pgpool.main" ).(server.PG )
240+ pgqueue .Router = provider .Task (ctx , "httprouter.main" ).(server.HTTPRouter )
241+ }))
242+ err = errors .Join (err , provider .Load ("certmanager" , "main" , func (ctx context.Context , config server.Plugin ) {
243+ certmanager := config .(* cert.Config )
244+ certmanager .Router = provider .Task (ctx , "httprouter.main" ).(server.HTTPRouter )
245+ certmanager .Pool = provider .Task (ctx , "pgpool.main" ).(server.PG )
222246 }))
223- err = errors .Join (err , provider .Load ("helloworld" , "main" , nil ))
224- err = errors .Join (err , provider .Load ("auth" , "main" , nil ))
225- err = errors .Join (err , provider .Load ("pgpool" , "main" , nil ))
226- err = errors .Join (err , provider .Load ("pgqueue" , "main" , nil ))
227- err = errors .Join (err , provider .Load ("certmanager" , "main" , nil ))
228247 if err != nil {
229248 return err
230249 }
0 commit comments