Implemented configuration file functionality
For site name, port number and data directory
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
SiteName string `json:"site_name"`
|
||||
Port string `json:"port"`
|
||||
DataDir string `json:"data_dir"`
|
||||
}
|
||||
|
||||
func Load(path string) Config {
|
||||
configData := Config{
|
||||
SiteName: "Unnamed Download Listing",
|
||||
Port: "8080",
|
||||
DataDir: "data",
|
||||
}
|
||||
|
||||
file, err := os.Open(path)
|
||||
if err != nil {
|
||||
log.Println("No config file found, using defaults. Consider setting up a Site Name at the very least!")
|
||||
return configData
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// Overwrite the default configuration with data from 'file'
|
||||
err = json.NewDecoder(file).Decode(&configData)
|
||||
if err != nil {
|
||||
log.Fatal("Config file exists but has errors:", err)
|
||||
}
|
||||
|
||||
return configData
|
||||
}
|
||||
Reference in New Issue
Block a user