Skip to content

Commit 5d36b8b

Browse files
author
Lukas Gentele
authored
Merge pull request #173 from covexo/improve-init
Improve init
2 parents 693c503 + f5fc0b1 commit 5d36b8b

7 files changed

Lines changed: 80 additions & 3033 deletions

File tree

cmd/init.go

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ import (
2121

2222
// InitCmd is a struct that defines a command call for "init"
2323
type InitCmd struct {
24-
flags *InitCmdFlags
25-
workdir string
26-
chartGenerator *generator.ChartGenerator
27-
config *v1.Config
24+
flags *InitCmdFlags
25+
workdir string
26+
chartGenerator *generator.ChartGenerator
27+
config *v1.Config
28+
overwriteConfig *v1.Config
2829
}
2930

3031
// InitCmdFlags are the flags available for the init-command
@@ -119,11 +120,10 @@ func (cmd *InitCmd) Run(cobraCmd *cobra.Command, args []string) {
119120
Image: &v1.ImageConfig{
120121
Name: configutil.String("devspace"),
121122
},
122-
Cluster: &v1.Cluster{
123-
APIServer: configutil.String("https://192.168.99.100:8443"),
124-
User: &v1.User{},
125-
},
126123
})
124+
cmd.overwriteConfig = configutil.GetOverwriteConfig()
125+
126+
cmd.initChartGenerator()
127127

128128
createChart := cmd.flags.overwrite
129129

@@ -213,12 +213,6 @@ func (cmd *InitCmd) configureDevSpace() {
213213
ValidationRegexPattern: v1.Kubernetes.RegexPatterns.Name,
214214
})
215215

216-
cmd.config.DevSpace.Release.Namespace = stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
217-
Question: "Which Kubernetes namespace should your application run in?",
218-
DefaultValue: *cmd.config.DevSpace.Release.Namespace,
219-
ValidationRegexPattern: v1.Kubernetes.RegexPatterns.Name,
220-
})
221-
222216
// cmd.appConfig.Container.Ports, _ = strconv.Atoi(stdinutil.GetFromStdin(&stdinutil.GetFromStdin_params{
223217
// Question: "Which port(s) does your application listen on? (separated by spaces)",
224218
// DefaultValue: strconv.Itoa(cmd.appConfig.Container.Port),
@@ -240,6 +234,12 @@ func (cmd *InitCmd) configureDevSpace() {
240234
}
241235
cmd.addDefaultSyncConfig()
242236

237+
cmd.config.DevSpace.Release.Namespace = stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
238+
Question: "Which Kubernetes namespace should your application run in?",
239+
DefaultValue: *cmd.config.DevSpace.Release.Namespace,
240+
ValidationRegexPattern: v1.Kubernetes.RegexPatterns.Name,
241+
})
242+
243243
/* TODO
244244
cmd.appConfig.External.Domain = stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
245245
Question: "Which domain do you want to run your application on?",
@@ -341,6 +341,9 @@ func (cmd *InitCmd) configureKubernetes() {
341341
clusterConfig.UseKubeConfig = configutil.Bool(useKubeConfig)
342342

343343
if !useKubeConfig {
344+
if clusterConfig.APIServer == nil {
345+
clusterConfig.APIServer = configutil.String("https://192.168.99.100:8443")
346+
}
344347
clusterConfig.APIServer = stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
345348
Question: "What is your Kubernetes API Server URL? (e.g. https://127.0.0.1:8443)",
346349
DefaultValue: *clusterConfig.APIServer,
@@ -370,7 +373,6 @@ func (cmd *InitCmd) configureKubernetes() {
370373
}
371374

372375
func (cmd *InitCmd) configureRegistry() {
373-
overwriteConfig := configutil.GetOverwriteConfig()
374376
registryConfig := cmd.config.Services.Registry
375377

376378
enableAutomaticBuilds := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
@@ -405,7 +407,7 @@ func (cmd *InitCmd) configureRegistry() {
405407
if registryConfig.Internal.Release.Namespace == nil {
406408
registryConfig.Internal.Release.Namespace = cmd.config.DevSpace.Release.Namespace
407409
}
408-
registryUser := overwriteConfig.Services.Registry.User
410+
registryUser := cmd.overwriteConfig.Services.Registry.User
409411

410412
if registryUser.Username == nil {
411413
randomUserSuffix, err := randutil.GenerateRandomString(5)
@@ -495,16 +497,20 @@ func (cmd *InitCmd) determineLanguage() {
495497
if err != nil {
496498
log.Fatalf("Unable to get supported languages: %s", err.Error())
497499
}
498-
cmd.chartGenerator.Language, _ = cmd.chartGenerator.GetLanguage()
500+
detectedLang, langDetectionErr := cmd.chartGenerator.GetLanguage()
501+
502+
if langDetectionErr != nil {
503+
//log.Error(langDetectionErr)
504+
}
499505

500-
if cmd.chartGenerator.Language == "" {
501-
cmd.chartGenerator.Language = "none"
506+
if detectedLang == "" {
507+
detectedLang = "none"
502508
}
503509
log.StopWait()
504510

505511
cmd.chartGenerator.Language = *stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
506512
Question: "What is the major programming language of your project?\nSupported languages: " + strings.Join(supportedLanguages, ", "),
507-
DefaultValue: cmd.chartGenerator.Language,
513+
DefaultValue: detectedLang,
508514
ValidationRegexPattern: "^(" + strings.Join(supportedLanguages, ")|(") + ")$",
509515
})
510516
}

0 commit comments

Comments
 (0)