32 lines
712 B
Go
32 lines
712 B
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/adamveld12/gopherhole/internal"
|
|
)
|
|
|
|
type StartupConfig struct {
|
|
DatabaseURL string `json:"database"`
|
|
CacheURL string `json:"cache"`
|
|
HTTPAddr string `json:"http-addr"`
|
|
DNSAddr string `json:"dns-addr"`
|
|
Recursors []string `json:"recursors"`
|
|
Rules []internal.Rule `json:"rules"`
|
|
}
|
|
|
|
func LoadStartupConfig(conf *StartupConfig, file string) error {
|
|
data, err := os.Open(file)
|
|
if err != nil {
|
|
return fmt.Errorf("could not open file: %w", err)
|
|
}
|
|
|
|
if err := json.NewDecoder(data).Decode(conf); err != nil {
|
|
return fmt.Errorf("could not read json file: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|