(ctx context.Context, f factory.Factory, options *CommandOptions, logger log.Logger)
| 255 | } |
| 256 | |
| 257 | func initialize(ctx context.Context, f factory.Factory, options *CommandOptions, logger log.Logger) (devspacecontext.Context, error) { |
| 258 | // start file logging |
| 259 | log.StartFileLogging() |
| 260 | |
| 261 | // create a temporary folder for us to use |
| 262 | tempFolder, err := os.MkdirTemp("", "devspace-") |
| 263 | if err != nil { |
| 264 | return nil, errors.Wrap(err, "create temporary folder") |
| 265 | } |
| 266 | |
| 267 | // add temp folder to context |
| 268 | ctx = values.WithTempFolder(ctx, tempFolder) |
| 269 | |
| 270 | // set config root |
| 271 | configLoader, err := f.NewConfigLoader(options.ConfigPath) |
| 272 | if err != nil { |
| 273 | return nil, err |
| 274 | } |
| 275 | configExists, err := configLoader.SetDevSpaceRoot(logger) |
| 276 | if err != nil { |
| 277 | return nil, err |
| 278 | } else if !configExists { |
| 279 | return nil, errors.New(message.ConfigNotFound) |
| 280 | } |
| 281 | |
| 282 | // create kubectl client |
| 283 | client, err := f.NewKubeClientFromContext(options.KubeContext, options.Namespace) |
| 284 | if err != nil { |
| 285 | logger.Warnf("Unable to create new kubectl client: %v", err) |
| 286 | logger.WriteString(logrus.WarnLevel, "\n") |
| 287 | client = nil |
| 288 | } |
| 289 | |
| 290 | // load generated config |
| 291 | localCache, err := configLoader.LoadLocalCache() |
| 292 | if err != nil { |
| 293 | return nil, errors.Errorf("error loading local cache: %v", err) |
| 294 | } |
| 295 | |
| 296 | if client != nil { |
| 297 | // If the current kube context or namespace is different than old, |
| 298 | // show warnings and reset kube client if necessary |
| 299 | client, err = kubectl.CheckKubeContext(client, localCache, options.NoWarn, options.SwitchContext, false, logger) |
| 300 | if err != nil { |
| 301 | return nil, err |
| 302 | } |
| 303 | } |
| 304 | |
| 305 | // load config |
| 306 | configInterface, err := configLoader.LoadWithCache(ctx, localCache, client, options.ConfigOptions, logger) |
| 307 | if err != nil { |
| 308 | return nil, err |
| 309 | } |
| 310 | |
| 311 | // add root name to context |
| 312 | ctx = values.WithRootName(ctx, configInterface.Config().Name) |
| 313 | |
| 314 | // create devspace context |
no test coverage detected