@@ -3,15 +3,16 @@ package commands
3
3
import (
4
4
"fmt"
5
5
"os"
6
-
6
+ "encoding/json"
7
+ "path/filepath"
8
+ "strings"
9
+ "bufio"
7
10
"github.com/spf13/cobra"
8
11
)
9
12
10
13
11
14
type Config struct {
12
15
ServerUrl string `json:"server_url"`
13
- Issuer string `json:"issuer"`
14
- ClientID string `json:"client_id"`
15
16
}
16
17
17
18
@@ -37,21 +38,18 @@ through a simple CLI interface.`,
37
38
38
39
config , err := loadOrCreateConfig ()
39
40
40
- if err != nil {
41
+ if err != nil {
41
42
return fmt .Errorf ("Failed to load configuration: %w" , err )
42
43
}
43
44
44
45
globalConfig = config
45
46
46
47
if ! cmd .Flag ("server" ).Changed && config .ServerUrl != "" {
47
- serverUrl = config .ServerURL
48
+ serverURL = config .ServerUrl
48
49
}
49
50
50
51
return nil
51
- }
52
-
53
-
54
-
52
+ },
55
53
}
56
54
)
57
55
@@ -73,7 +71,7 @@ func configPath() (string, error) {
73
71
return "" , err
74
72
}
75
73
dir := filepath .Join (home , ".config" , "opentaco" )
76
- if err := os . MkdirAll (dir , 0o755 ): err != nil {
74
+ if err := os .MkdirAll (dir , 0o755 ); err != nil {
77
75
return "" , err
78
76
}
79
77
return filepath .Join (dir , "config.json" ), nil
@@ -83,7 +81,7 @@ func configPath() (string, error) {
83
81
84
82
// loads and returns the config
85
83
func loadConfig () (* Config , error ) {
86
- path , error := configPath ()
84
+ path , err := configPath ()
87
85
88
86
if err != nil {
89
87
return nil , err
@@ -151,7 +149,7 @@ func loadOrCreateConfig() (*Config, error) {
151
149
}
152
150
153
151
if err := saveConfig (config ); err != nil {
154
- return nil , fmt .Error ("Failed to save configuration: %w" , err )
152
+ return nil , fmt .Errorf ("Failed to save configuration: %w" , err )
155
153
}
156
154
157
155
fmt .Println ("Configuration saved successfully!" )
@@ -168,7 +166,7 @@ func loadOrCreateConfig() (*Config, error) {
168
166
169
167
func runSetupWizard () (* Config , error ) {
170
168
reader := bufio .NewReader (os .Stdin )
171
- config := & Config ()
169
+ config := & Config {}
172
170
173
171
// Get server url
174
172
@@ -181,54 +179,18 @@ func runSetupWizard() (*Config, error) {
181
179
}
182
180
183
181
serverURL = strings .TrimSpace (serverURL )
184
- if serverURL = "" {
182
+ if serverURL == "" {
185
183
serverURL = "http://localhost:8080"
186
184
}
187
185
188
- config .ServerURL = serverURL
186
+ config .ServerUrl = serverURL
189
187
190
188
break
191
189
}
192
190
193
- // get OIDC issuer
194
-
195
- for {
196
- fmt .Print ("Enter OIDC issuer URL:" )
197
- issuer , err := reader .ReadString ('\n' )
198
-
199
- if err != nil {
200
- return nil , err
201
- }
202
-
203
- config .Issuer = strings .TrimSpace (issuer )
204
- break
205
- }
206
-
207
- // get OIDC client ID
208
-
209
- for {
210
- fmt .Print ("Enter the OIDC client ID:" )
211
- clientID , err := reader .ReadString ('\n' )
212
-
213
- if err != nil {
214
-
215
- return nil , err
216
- }
217
-
218
- config .ClientID = strings .TrimSpace (clientID )
219
- break
220
- }
221
-
222
191
223
192
fmt .Println ("Configuration Summary:" )
224
- fmt .Printf (" Server URL: %s\n " , config .ServerURL )
225
- if config .Issuer != "" {
226
- fmt .Printf (" OIDC Issuer: %s\n " , config .Issuer )
227
- }
228
-
229
- if config .ClientID != "" {
230
- fmt .Printf (" OIDC Client ID: %s\n " , config .ClientID )
231
- }
193
+ fmt .Printf (" Server URL: %s\n " , config .ServerUrl )
232
194
233
195
for {
234
196
fmt .Print ("\n Save this configuration? [Y/n]: " )
@@ -237,12 +199,12 @@ func runSetupWizard() (*Config, error) {
237
199
return nil , err
238
200
}
239
201
240
- confirm = strings .ToLowr (strings .TrimSpace (confirm ))
202
+ confirm = strings .ToLower (strings .TrimSpace (confirm ))
241
203
242
204
if confirm == "" || confirm == "y" || confirm == "yes" {
243
205
return config , nil
244
206
} else if confirm == "n" || confirm == "no" {
245
- fmt .Println ("Configuratin cancelled" )
207
+ fmt .Println ("Configuration cancelled" )
246
208
os .Exit (0 )
247
209
} else {
248
210
fmt .Println ("Please enter 'y' for yes or 'n' for no." )
@@ -252,6 +214,22 @@ func runSetupWizard() (*Config, error) {
252
214
}
253
215
254
216
217
+ func getConfigurationValue (flagValue , configValue , envKey , defaultValue string ) string {
218
+ if envValue := os .Getenv (envKey ); envValue != "" {
219
+ return envValue
220
+ }
221
+ if flagValue != "" {
222
+ return flagValue
223
+
224
+ }
225
+
226
+ if configValue != "" {
227
+ return configValue
228
+ }
229
+
230
+ return defaultValue
231
+
232
+ }
255
233
256
234
257
235
@@ -271,3 +249,9 @@ func printVerbose(format string, args ...interface{}) {
271
249
}
272
250
273
251
252
+
253
+ func GetGlobalConfig () * Config {
254
+ return globalConfig
255
+ }
256
+
257
+
0 commit comments