all repos — flounder @ b9e66276e699787e46e8e366d66e3c668447804f

A small site builder for the Gemini protocol

config.go (view raw)

 1package main
 2
 3import (
 4	"github.com/BurntSushi/toml"
 5	"path/filepath"
 6)
 7
 8const HiddenFolder = ".hidden"
 9const GemlogFolder = "gemlog"
10
11type Config struct {
12	FilesDirectory     string
13	TemplatesDirectory string
14	Host               string
15	HttpPort           int
16	SiteTitle          string
17	Debug              bool
18	SecretKey          string
19	DBFile             string
20	AnalyticsDBFile    string
21	LogFile            string
22	GeminiCertStore    string
23	CookieStoreKey     string
24	OkExtensions       []string
25	MaxFileBytes       int
26	MaxUserBytes       int64
27	TLSCertFile        string
28	TLSKeyFile         string
29	SMTPServer         string
30	SMTPUsername       string
31	SMTPPassword       string
32}
33
34func getConfig(filename string) (Config, error) {
35	var config Config
36	// Attempt to overwrite defaults from file
37	_, err := toml.DecodeFile(filename, &config)
38	if err != nil {
39		return config, err
40	}
41	// Workaround for how some of my path fns are written
42	config.FilesDirectory, _ = filepath.Abs(config.FilesDirectory)
43	return config, nil
44}