mirror of
https://github.com/schollz/cowyo.git
synced 2023-08-10 21:13:00 +03:00
55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
package config
|
|
|
|
import (
|
|
"github.com/BurntSushi/toml"
|
|
)
|
|
|
|
func ParseFile(path string) (Config, error) {
|
|
c := Config{}
|
|
if _, err := toml.DecodeFile("multisite_sample.toml", &c); err != nil {
|
|
// handle error
|
|
return c, err
|
|
}
|
|
c.SetDefaults()
|
|
c.Validate()
|
|
return c, nil
|
|
}
|
|
|
|
type Config struct {
|
|
Default SiteConfig
|
|
Sites []SiteConfig
|
|
}
|
|
|
|
type SiteConfig struct {
|
|
Host *string
|
|
Port *int
|
|
DataDir *string
|
|
DefaultPage *string
|
|
AllowInsecureMarkup *bool
|
|
Lock *string
|
|
DebounceSave *int
|
|
Diary *bool
|
|
AccessCode *string
|
|
FileUploadsAllowed *bool
|
|
MaxFileUploadMb *uint
|
|
MaxDocumentLength *uint
|
|
TLS *TLSConfig
|
|
CookieKeys []CookieKey
|
|
}
|
|
|
|
type TLSConfig struct {
|
|
CertPath string
|
|
KeyPath string
|
|
Port int
|
|
}
|
|
|
|
type CookieKey struct {
|
|
AuthenticateBase64 string
|
|
EncryptBase64 string
|
|
}
|
|
|
|
func (c Config) Validate() {
|
|
for _, v := range c.Sites {
|
|
v.sessionStore()
|
|
}
|
|
} |