43 lines
862 B
Go
43 lines
862 B
Go
package main
|
|
|
|
import (
|
|
"github.com/BurntSushi/toml"
|
|
)
|
|
|
|
type Config struct {
|
|
Port int
|
|
Hostname string
|
|
CertPath string
|
|
KeyPath string
|
|
DocBase string
|
|
HomeDocBase string
|
|
LogPath string
|
|
CGIPath string
|
|
}
|
|
|
|
func getConfig(filename string) (Config, error) {
|
|
|
|
var config Config
|
|
|
|
// Defaults
|
|
config.Port = 1965
|
|
config.Hostname = "localhost"
|
|
config.CertPath = "cert.pem"
|
|
config.KeyPath = "key.pem"
|
|
config.DocBase = "/var/gemini/"
|
|
config.HomeDocBase = "users"
|
|
config.LogPath = "molly.log"
|
|
config.CGIPath = "^/var/gemini/cgi-bin/"
|
|
|
|
// Return defaults if no filename given
|
|
if filename == "" {
|
|
return config, nil
|
|
}
|
|
|
|
// Attempt to overwrite defaults from file
|
|
_, err := toml.DecodeFile(filename, &config)
|
|
if err != nil {
|
|
return config, err
|
|
}
|
|
return config, nil
|
|
}
|