func main() { logger := newLogger() defer logger.HandlePanic("Main") fileSystem := boshsys.NewOsFileSystemWithStrictTempRoot(logger) workspaceRootPath := path.Join(os.Getenv("HOME"), ".bosh_init") ui := biui.NewConsoleUI(logger) timeService := clock.NewClock() cmdFactory := bicmd.NewFactory( fileSystem, ui, timeService, logger, boshuuid.NewGenerator(), workspaceRootPath, ) cmdRunner := bicmd.NewRunner(cmdFactory) stage := biui.NewStage(ui, timeService, logger) err := cmdRunner.Run(stage, os.Args[1:]...) if err != nil { displayHelpFunc := func() { if strings.Contains(err.Error(), "Invalid usage") { ui.ErrorLinef("") cmdRunner.Run(stage, append([]string{"help"}, os.Args[1:]...)...) } } fail(err, ui, logger, displayHelpFunc) } }
func (f *factory) loadInstallationParser() biinstallmanifest.Parser { if f.installationParser != nil { return f.installationParser } uuidGenerator := boshuuid.NewGenerator() f.installationParser = biinstallmanifest.NewParser(f.fs, uuidGenerator, f.logger, f.loadInstallationValidator()) return f.installationParser }
func NewRequestRetryable( request *http.Request, delegate Client, logger boshlog.Logger, ) RequestRetryable { return &requestRetryable{ request: request, delegate: delegate, attempt: 0, uuidGenerator: boshuuid.NewGenerator(), logger: logger, logTag: "clientRetryable", } }
func NewProvider( fs system.FileSystem, runner system.CmdRunner, configDir string, logger boshlog.Logger, ) Provider { return Provider{ uuidGen: boshuuid.NewGenerator(), fs: fs, runner: runner, configDir: configDir, logger: logger, } }