func runAgent(logger logger.Logger) chan error { errCh := make(chan error, 1) go func() { defer logger.HandlePanic("Main") logger.Debug(mainLogTag, "Starting agent") fs := boshsys.NewOsFileSystem(logger) app := boshapp.New(logger, fs) err := app.Setup(os.Args) if err != nil { logger.Error(mainLogTag, "App setup %s", err.Error()) errCh <- err return } err = app.Run() if err != nil { logger.Error(mainLogTag, "App run %s", err.Error()) errCh <- err return } }() return errCh }