func setupDependencies() (deps *cliDependencies) { if os.Getenv("CF_COLOR") == "" { os.Setenv("CF_COLOR", "true") } deps = new(cliDependencies) deps.termUI = terminal.NewUI(os.Stdin) deps.manifestRepo = manifest.NewManifestDiskRepository() deps.configRepo = configuration.NewRepositoryFromFilepath(configuration.DefaultFilePath(), func(err error) { if err != nil { deps.termUI.Failed(fmt.Sprintf("Config error: %s", err)) } }) deps.apiRepoLocator = api.NewRepositoryLocator(deps.configRepo, map[string]net.Gateway{ "auth": net.NewUAAGateway(deps.configRepo), "cloud-controller": net.NewCloudControllerGateway(deps.configRepo), "uaa": net.NewUAAGateway(deps.configRepo), }) return }
func main() { defer func() { maybeSomething := recover() if maybeSomething != nil { displayCrashDialog() } }() fileutils.SetTmpPathPrefix("cf") if os.Getenv("CF_COLOR") == "" { os.Setenv("CF_COLOR", "true") } termUI := terminal.NewUI() configRepo := configuration.NewConfigurationDiskRepository() config := loadConfig(termUI, configRepo) manifestRepo := manifest.NewManifestDiskRepository() repoLocator := api.NewRepositoryLocator(config, configRepo, map[string]net.Gateway{ "auth": net.NewUAAGateway(), "cloud-controller": net.NewCloudControllerGateway(), "uaa": net.NewUAAGateway(), }) cmdFactory := commands.NewFactory(termUI, config, configRepo, manifestRepo, repoLocator) reqFactory := requirements.NewFactory(termUI, config, repoLocator) cmdRunner := commands.NewRunner(cmdFactory, reqFactory) app, err := app.NewApp(cmdRunner) if err != nil { return } app.Run(os.Args) }
func createCommandFactory() command_factory.Factory { fakeUI := &testterm.FakeUI{} configRepo := testconfig.NewRepository() manifestRepo := manifest.NewManifestDiskRepository() apiRepoLocator := api.NewRepositoryLocator(configRepo, map[string]net.Gateway{ "auth": net.NewUAAGateway(configRepo), "cloud-controller": net.NewCloudControllerGateway(configRepo), "uaa": net.NewUAAGateway(configRepo), }) return command_factory.NewFactory(fakeUI, configRepo, manifestRepo, apiRepoLocator) }
func findCommand(cmdName string) (cmd cli.Command) { fakeUI := &testterm.FakeUI{} configRepo := testconfig.NewRepository() manifestRepo := manifest.NewManifestDiskRepository() apiRepoLocator := api.NewRepositoryLocator(configRepo, map[string]net.Gateway{ "auth": net.NewUAAGateway(configRepo), "cloud-controller": net.NewCloudControllerGateway(configRepo), "uaa": net.NewUAAGateway(configRepo), }) cmdFactory := command_factory.NewFactory(fakeUI, configRepo, manifestRepo, apiRepoLocator) requirementsFactory := &testreq.FakeReqFactory{} cmdRunner := command_runner.NewRunner(cmdFactory, requirementsFactory) myApp := app.NewApp(cmdRunner, cmdFactory.CommandMetadatas()...) for _, cmd := range myApp.Commands { if cmd.Name == cmdName { return cmd } } panic(fmt.Sprintf("command %s does not exist", cmdName)) return }
"cf/api" "cf/manifest" "cf/net" testconfig "testhelpers/configuration" testterm "testhelpers/terminal" ) var _ = Describe("factory", func() { var ( factory Factory ) BeforeEach(func() { fakeUI := &testterm.FakeUI{} config := testconfig.NewRepository() manifestRepo := manifest.NewManifestDiskRepository() repoLocator := api.NewRepositoryLocator(config, map[string]net.Gateway{ "auth": net.NewUAAGateway(config), "cloud-controller": net.NewCloudControllerGateway(config), "uaa": net.NewUAAGateway(config), }) factory = NewFactory(fakeUI, config, manifestRepo, repoLocator) }) It("provides the metadata for its commands", func() { commands := factory.CommandMetadatas() err := filepath.Walk("../commands", func(path string, info os.FileInfo, err error) error { if strings.HasSuffix(path, "_test.go") || info.IsDir() { return nil