41 lines
822 B
Go
41 lines
822 B
Go
package hugo
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
hugoconfig "github.com/gohugoio/hugo/config"
|
|
"github.com/spf13/afero"
|
|
)
|
|
|
|
type Config struct {
|
|
hugoconfig hugoconfig.Provider
|
|
}
|
|
|
|
func (c *Config) read() hugoconfig.Provider {
|
|
if c.hugoconfig == nil {
|
|
cfg, err := hugoconfig.FromFile(afero.NewOsFs(), "config.toml")
|
|
if err != nil {
|
|
fmt.Println("load config from file failed", err)
|
|
return nil
|
|
}
|
|
c.hugoconfig = cfg
|
|
}
|
|
return c.hugoconfig
|
|
}
|
|
|
|
func (c *Config) GetBool(v string) bool {
|
|
cfg := c.read()
|
|
if cfg == nil || !cfg.IsSet(v) {
|
|
fmt.Printf("config: no %v set, using default\n", v)
|
|
}
|
|
return cfg.GetBool(v)
|
|
}
|
|
|
|
func (c *Config) GetStringMapString(v string) map[string]string {
|
|
cfg := c.read()
|
|
if cfg == nil || !cfg.IsSet(v) {
|
|
fmt.Printf("config: no %v set, using default\n", v)
|
|
}
|
|
return cfg.GetStringMapString(v)
|
|
}
|