Skip to content

Commit 9b37aa6

Browse files
committed
fix: propper run command bootstrap
1 parent 8d253aa commit 9b37aa6

2 files changed

Lines changed: 44 additions & 61 deletions

File tree

cmd/run.go

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,31 +42,7 @@ var RunCmd = &cobra.Command{
4242
processLauncher := services.NewProcedureLauncher(client, processManager, services.NewPluginManager(), consoleService, logManager, scrollService)
4343

4444
queueManager := services.NewQueueManager(scrollService, processLauncher)
45-
46-
if !scrollService.LockExists() {
47-
scrollService.WriteNewScrollLock()
48-
logger.Log().Info("Lock file created")
49-
}
50-
51-
_, err = scrollService.Bootstrap(ignoreVersionCheck)
52-
53-
if err != nil {
54-
return fmt.Errorf("error loading scroll: %w", err)
55-
}
56-
57-
err = scrollService.RenderCwdTemplates()
58-
if err != nil {
59-
return err
60-
}
61-
62-
err = processLauncher.LaunchPlugins()
63-
64-
if err != nil {
65-
return err
66-
}
67-
68-
logger.Log().Info("Staring queue")
69-
go queueManager.Work()
45+
_, err = initScroll(scrollService, processLauncher, queueManager)
7046

7147
logger.Log().Info("Adding command to queue", zap.String("command", command))
7248
err = queueManager.AddTempItem(command)

cmd/serve.go

Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -270,50 +270,15 @@ func init() {
270270
func startup(scrollService *services.ScrollService, processLauncher *services.ProcedureLauncher, queueManager *services.QueueManager, portSerivce *services.PortMonitor, coldStarter *services.ColdStarter, healthHandler *handler.HealthHandler, cwd string, doneChan chan error) {
271271

272272
healthHandler.Started = true
273-
274273
currentScroll := scrollService.GetCurrent()
275274

276-
lock, err := scrollService.Bootstrap(ignoreVersionCheck)
277-
if err != nil {
278-
doneChan <- err
279-
return
280-
}
281-
282-
newScroll := len(lock.Statuses) == 0
283-
284-
if newScroll {
285-
logger.Log().Info("No lock file found, but init command available. Bootstrapping...")
286-
287-
logger.Log().Info("Creating lock and bootstrapping files")
288-
//There is an error here. We need to bootstrap the files before we render out the templates in the bootstrap func above
289-
err := scrollService.CreateLockAndBootstrapFiles()
290-
if err != nil {
291-
doneChan <- err
292-
return
293-
}
294-
} else {
295-
logger.Log().Info("Found lock file, bootstrapping done")
296-
}
297-
298-
logger.Log().Info("Rendering cwd templates")
299-
err = scrollService.RenderCwdTemplates()
300-
if err != nil {
301-
doneChan <- err
302-
return
303-
}
304-
305-
logger.Log().Info("Launching plugins")
306-
//important to launch plugins, after the templates are rendered, sothat templates can provide for plugins
307-
err = processLauncher.LaunchPlugins()
275+
newScroll, err := initScroll(scrollService, processLauncher, queueManager)
308276

309277
if err != nil {
310278
doneChan <- err
311279
return
312280
}
313281

314-
logger.Log().Info("Starting queue manager")
315-
go queueManager.Work()
316-
317282
if newScroll {
318283
logger.Log().Info("Starting scroll.init process")
319284
//start scroll.init process
@@ -375,3 +340,45 @@ func startup(scrollService *services.ScrollService, processLauncher *services.Pr
375340
doneChan <- nil
376341

377342
}
343+
344+
func initScroll(scrollService *services.ScrollService, processLauncher *services.ProcedureLauncher, queueManager *services.QueueManager) (bool, error) {
345+
346+
lock, err := scrollService.Bootstrap(ignoreVersionCheck)
347+
if err != nil {
348+
return false, err
349+
}
350+
351+
newScroll := len(lock.Statuses) == 0
352+
353+
if newScroll {
354+
logger.Log().Info("No lock file found, but init command available. Bootstrapping...")
355+
356+
logger.Log().Info("Creating lock and bootstrapping files")
357+
//There is an error here. We need to bootstrap the files before we render out the templates in the bootstrap func above
358+
err := scrollService.CreateLockAndBootstrapFiles()
359+
if err != nil {
360+
return newScroll, err
361+
}
362+
} else {
363+
logger.Log().Info("Found lock file, bootstrapping done")
364+
}
365+
366+
logger.Log().Info("Rendering cwd templates")
367+
err = scrollService.RenderCwdTemplates()
368+
if err != nil {
369+
return newScroll, err
370+
}
371+
372+
logger.Log().Info("Launching plugins")
373+
//important to launch plugins, after the templates are rendered, sothat templates can provide for plugins
374+
err = processLauncher.LaunchPlugins()
375+
376+
if err != nil {
377+
return newScroll, err
378+
}
379+
380+
logger.Log().Info("Starting queue manager")
381+
go queueManager.Work()
382+
383+
return newScroll, nil
384+
}

0 commit comments

Comments
 (0)