You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
993 B
Go
50 lines
993 B
Go
package Configuration
|
|
|
|
// Imports
|
|
import (
|
|
"encoding/json"
|
|
"io/fs"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
// Load Configurations
|
|
func LoadConfigurations(path string) ([]Configuration, error) {
|
|
// Configurations
|
|
var configurations []Configuration
|
|
// Walk Configuration Directory
|
|
err := filepath.Walk(path, func(path string, fileInfo fs.FileInfo, err error) error {
|
|
// Handle Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
// If File
|
|
if fileInfo.IsDir() == false {
|
|
// Read File
|
|
configurationBytes, err := os.ReadFile(path)
|
|
// Handle Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
// Configuration
|
|
var configuration Configuration
|
|
// Unmarshal
|
|
err = json.Unmarshal(configurationBytes, &configuration)
|
|
// Handle Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
// Add Configuration
|
|
configurations = append(configurations, configuration)
|
|
}
|
|
// Return
|
|
return nil
|
|
})
|
|
// Handle Error
|
|
if err != nil {
|
|
return []Configuration{}, err
|
|
}
|
|
// Return
|
|
return configurations, nil
|
|
}
|