Skip to content

Commit 2757e4f

Browse files
committed
Fix loadManagerConfig duplication code
1 parent 3c3823a commit 2757e4f

File tree

1 file changed

+11
-34
lines changed

1 file changed

+11
-34
lines changed

manager/manager.go

Lines changed: 11 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -24,40 +24,6 @@ import (
2424
httpSwagger "github.com/swaggo/http-swagger"
2525
)
2626

27-
func loadManagerConfig(filename string, verbose, debug bool) (*utils.ManagerConfig, error) {
28-
var config utils.ManagerConfig
29-
if debug || verbose {
30-
log.Println("Manager Loading manager config from file", filename)
31-
}
32-
33-
// Validate filename
34-
if filename == "" {
35-
return nil, errors.New("filename cannot be empty")
36-
}
37-
38-
// Check if file exists
39-
if _, err := os.Stat(filename); os.IsNotExist(err) {
40-
return nil, fmt.Errorf("config file does not exist")
41-
}
42-
43-
content, err := os.ReadFile(filename)
44-
if err != nil {
45-
return nil, err
46-
}
47-
48-
// Use specific error message for json.Unmarshal failure
49-
err = json.Unmarshal(content, &config)
50-
if err != nil {
51-
return nil, fmt.Errorf("error unmarshaling JSON: %w", err)
52-
}
53-
54-
// init WebSockets map
55-
config.WebSockets = make(map[string]*websocket.Conn)
56-
57-
// Return nil instead of &config when error occurs
58-
return &config, nil
59-
}
60-
6127
// Helper function to load and parse JSON config files
6228
func loadConfigFile[T any](filename string, verbose, debug bool, configType string) (*T, error) {
6329
if debug || verbose {
@@ -89,6 +55,17 @@ func loadConfigFile[T any](filename string, verbose, debug bool, configType stri
8955
return &config, nil
9056
}
9157

58+
// Specific function to load nTask config
59+
func loadManagerConfig(filename string, verbose, debug bool) (*utils.ManagerConfig, error) {
60+
configFile, err := loadConfigFile[utils.ManagerConfig](filename, verbose, debug, "nTask")
61+
if err != nil {
62+
return nil, err
63+
}
64+
// init WebSockets map
65+
configFile.WebSockets = make(map[string]*websocket.Conn)
66+
return configFile, nil
67+
}
68+
9269
// Specific function to load SSH config
9370
func loadManagerSSHConfig(filename string, verbose, debug bool) (*utils.ManagerSSHConfig, error) {
9471
return loadConfigFile[utils.ManagerSSHConfig](filename, verbose, debug, "SSH")

0 commit comments

Comments
 (0)