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

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
}