diff options
| author | James Mills <prologic@shortcircuit.net.au> | 2020-03-21 09:55:06 +1000 |
|---|---|---|
| committer | James Mills <prologic@shortcircuit.net.au> | 2020-03-21 09:55:06 +1000 |
| commit | 4dae45a68ff1ff32a251a5835b2a2723ae125d1c (patch) | |
| tree | b3abe641f39f50ac444aee2bb617d7b4ab44187d /app/config.go | |
| parent | 76fa613b7eaf1c8626d2a51901c623af7bf1a665 (diff) | |
Restructured source code layout, Added rice support for templates and static assets
Diffstat (limited to 'app/config.go')
| -rw-r--r-- | app/config.go | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/app/config.go b/app/config.go new file mode 100644 index 0000000..c2ecb45 --- /dev/null +++ b/app/config.go @@ -0,0 +1,68 @@ +package app + +import ( + "encoding/json" + "os" +) + +// Config settings for main App. +type Config struct { + Library []*PathConfig `json:"library"` + Server *ServerConfig `json:"server"` + Feed *FeedConfig `json:"feed"` +} + +// PathConfig settings for media library path. +type PathConfig struct { + Path string `json:"path"` + Prefix string `json:"prefix"` +} + +// ServerConfig settings for App Server. +type ServerConfig struct { + Host string `json:"host"` + Port int `json:"port"` +} + +// FeedConfig settings for App Feed. +type FeedConfig struct { + ExternalURL string `json:"external_url"` + Title string `json:"title"` + Link string `json:"link"` + Description string `json:"description"` + Author struct { + Name string `json:"name"` + Email string `json:"email"` + } `json:"author"` + Copyright string `json:"copyright"` +} + +// DefaultConfig returns Config initialized with default values. +func DefaultConfig() *Config { + return &Config{ + Library: []*PathConfig{ + &PathConfig{ + Path: "videos", + Prefix: "", + }, + }, + Server: &ServerConfig{ + Host: "127.0.0.1", + Port: 0, + }, + Feed: &FeedConfig{ + ExternalURL: "http://localhost", + }, + } +} + +// ReadFile reads a JSON file into Config. +func (c *Config) ReadFile(path string) error { + f, err := os.Open(path) + if err != nil { + return err + } + defer f.Close() + d := json.NewDecoder(f) + return d.Decode(c) +} |
