-
Notifications
You must be signed in to change notification settings - Fork 1
/
conf.go
66 lines (54 loc) · 1.85 KB
/
conf.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package main
import (
"log"
"regexp"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
)
// content-type constants
const htmlutf8 = "text/html; charset=utf-8"
const cssutf8 = "text/css; charset=utf-8"
// Config object initialization
var confVars = &confParams{}
// (Re-)Populates config object
func setConfVars() {
confVars.port = ":" + viper.GetString("Port")
confVars.pageDir = viper.GetString("PageDir")
confVars.assetsDir = viper.GetString("AssetsDir")
confVars.cssPath = viper.GetString("CSS")
confVars.viewPath = "/" + viper.GetString("ViewPath") + "/"
confVars.indexRefreshInterval = viper.GetString("IndexRefreshInterval")
confVars.wikiName = viper.GetString("Name")
confVars.wikiDesc = viper.GetString("ShortDesc")
confVars.descSep = viper.GetString("DescSeparator")
confVars.titleSep = viper.GetString("TitleSeparator")
confVars.iconPath = viper.GetString("Icon")
confVars.indexFile = viper.GetString("Index")
confVars.reverseTally = viper.GetBool("ReverseTally")
confVars.validPath = regexp.MustCompile(viper.GetString("ValidPath"))
confVars.quietLogging = viper.GetBool("QuietLogging")
confVars.fileLogging = viper.GetBool("FileLogging")
confVars.logFile = viper.GetString("LogFile")
}
// Sets the basic parameters for the default viper (config library) instance
func initConfigParams() {
conf := viper.GetViper()
conf.SetConfigType("yaml")
conf.SetConfigName("tildewiki")
conf.AddConfigPath(".")
conf.AddConfigPath("$HOME/.config/")
conf.AddConfigPath("/usr/local/tildewiki/")
conf.AddConfigPath("/etc/")
conf.AddConfigPath("/usr/local/etc/")
err := conf.ReadInConfig()
if err != nil {
log.Fatalf("Config file error: %s\n", err.Error())
}
setConfVars()
conf.WatchConfig()
conf.OnConfigChange(func(e fsnotify.Event) {
log.Println("**NOTICE** Config file change detected: ", e.Name)
setConfVars()
triggerRecache()
})
}