(cmd *cobra.Command, proxyConfig *install.ProxyConfig)
| 47 | ) |
| 48 | |
| 49 | func cliInstall(cmd *cobra.Command, proxyConfig *install.ProxyConfig) (*install.InstallConfig, error) { |
| 50 | |
| 51 | cliConfig := lib.GenerateDefaultConfig() |
| 52 | cliConfig.ProxyConfig = proxyConfig |
| 53 | |
| 54 | if e := applyAdditionalPrompt(cmd.Context(), "boot", cliConfig); e != nil { |
| 55 | return nil, e |
| 56 | } |
| 57 | |
| 58 | fmt.Println("\n\033[1m## Database Connection\033[0m") |
| 59 | adminRequired, e := promptDB(cmd.Context(), cliConfig) |
| 60 | if e != nil { |
| 61 | return nil, e |
| 62 | } |
| 63 | |
| 64 | if e := applyAdditionalPrompt(cmd.Context(), "post-db", cliConfig); e != nil { |
| 65 | return nil, e |
| 66 | } |
| 67 | |
| 68 | applyDocumentsDSN := "" |
| 69 | if e := promptAdditionalMongoDSN(cmd.Context(), cliConfig, false); e != nil { |
| 70 | return nil, e |
| 71 | } else if cliConfig.DocumentsDSN != "" { |
| 72 | // Copy DSN and apply it later on, or it will trigger configs warning |
| 73 | applyDocumentsDSN = cliConfig.DocumentsDSN |
| 74 | cliConfig.DocumentsDSN = "" |
| 75 | } |
| 76 | |
| 77 | e = lib.Install(cmd.Context(), cliConfig, lib.InstallDb, func(event *lib.InstallProgressEvent) { |
| 78 | fmt.Println(p.Styler(p.FGFaint)("... " + event.Message)) |
| 79 | }) |
| 80 | if e != nil { |
| 81 | return nil, fmt.Errorf("could not perform installation: %s", e.Error()) |
| 82 | } |
| 83 | |
| 84 | fmt.Println("\n\033[1m## Administrative User Configuration\033[0m") |
| 85 | if e := promptFrontendAdmin(cliConfig, adminRequired); e != nil { |
| 86 | return nil, e |
| 87 | } |
| 88 | |
| 89 | if e := applyAdditionalPrompt(cmd.Context(), "post-admin", cliConfig); e != nil { |
| 90 | return nil, e |
| 91 | } |
| 92 | |
| 93 | fmt.Println("\n\033[1m## Default storage location\033[0m") |
| 94 | if e := promptAdvanced(cmd.Context(), cliConfig); e != nil { |
| 95 | return nil, e |
| 96 | } |
| 97 | |
| 98 | if e := applyAdditionalPrompt(cmd.Context(), "post-advanced", cliConfig); e != nil { |
| 99 | return nil, e |
| 100 | } |
| 101 | |
| 102 | fmt.Println("\n\033[1m## Applying configuration\033[0m") |
| 103 | e = lib.Install(cmd.Context(), cliConfig, lib.InstallAll, func(event *lib.InstallProgressEvent) { |
| 104 | fmt.Println(p.Styler(p.FGFaint)("... " + event.Message)) |
| 105 | }) |
| 106 | if e != nil { |
no test coverage detected
searching dependent graphs…