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 HttpsEnabled bool
16 HttpPort int
17 SiteTitle string
18 Debug bool
19 SecretKey string
20 DBFile 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}