(writer io.Writer, logger trace.Printer, envDialTimeout string)
| 75 | } |
| 76 | |
| 77 | func NewDependency(writer io.Writer, logger trace.Printer, envDialTimeout string) Dependency { |
| 78 | deps := Dependency{} |
| 79 | deps.TeePrinter = terminal.NewTeePrinter(writer) |
| 80 | deps.UI = terminal.NewUI(os.Stdin, writer, deps.TeePrinter, logger) |
| 81 | |
| 82 | errorHandler := func(err error) { |
| 83 | if err != nil { |
| 84 | deps.UI.Failed(fmt.Sprintf("Config error: %s", err)) |
| 85 | } |
| 86 | } |
| 87 | |
| 88 | configPath, err := confighelpers.DefaultFilePath() |
| 89 | if err != nil { |
| 90 | errorHandler(err) |
| 91 | } |
| 92 | deps.Config = coreconfig.NewRepositoryFromFilepath(configPath, errorHandler) |
| 93 | |
| 94 | deps.ManifestRepo = manifest.NewDiskRepository() |
| 95 | deps.AppManifest = manifest.NewGenerator() |
| 96 | |
| 97 | pluginPath := filepath.Join(confighelpers.PluginRepoDir(), ".cf", "plugins") |
| 98 | deps.PluginConfig = pluginconfig.NewPluginConfig( |
| 99 | errorHandler, |
| 100 | configuration.NewDiskPersistor(filepath.Join(pluginPath, "config.json")), |
| 101 | pluginPath, |
| 102 | ) |
| 103 | |
| 104 | terminal.UserAskedForColors = deps.Config.ColorEnabled() |
| 105 | terminal.InitColorSupport() |
| 106 | |
| 107 | deps.Gateways = map[string]net.Gateway{ |
| 108 | "cloud-controller": net.NewCloudControllerGateway(deps.Config, time.Now, deps.UI, logger, envDialTimeout), |
| 109 | "uaa": net.NewUAAGateway(deps.Config, deps.UI, logger, envDialTimeout), |
| 110 | "routing-api": net.NewRoutingAPIGateway(deps.Config, time.Now, deps.UI, logger, envDialTimeout), |
| 111 | } |
| 112 | deps.RepoLocator = api.NewRepositoryLocator(deps.Config, deps.Gateways, logger, envDialTimeout) |
| 113 | |
| 114 | deps.PluginModels = &PluginModels{Application: nil} |
| 115 | |
| 116 | deps.PlanBuilder = planbuilder.NewBuilder( |
| 117 | deps.RepoLocator.GetServicePlanRepository(), |
| 118 | deps.RepoLocator.GetServicePlanVisibilityRepository(), |
| 119 | deps.RepoLocator.GetOrganizationRepository(), |
| 120 | ) |
| 121 | |
| 122 | deps.ServiceBuilder = servicebuilder.NewBuilder( |
| 123 | deps.RepoLocator.GetServiceRepository(), |
| 124 | deps.PlanBuilder, |
| 125 | ) |
| 126 | |
| 127 | deps.BrokerBuilder = brokerbuilder.NewBuilder( |
| 128 | deps.RepoLocator.GetServiceBrokerRepository(), |
| 129 | deps.ServiceBuilder, |
| 130 | ) |
| 131 | |
| 132 | deps.PluginRepo = pluginrepo.NewPluginRepo() |
| 133 | |
| 134 | deps.ServiceHandler = actors.NewServiceHandler( |
no test coverage detected