neofeels/config/config.go

50 lines
1003 B
Go

package config
import (
"encoding/json"
"os"
"path"
)
type Config struct {
Editor string `json:"editor"` // we don't care about this
Gopher bool `json:"gopher"`
Nopub bool `json:"post as nopub"`
PublishDir string `json:"publish dir"`
Publishing bool `json:"publishing"`
Rainbows bool `json:"rainbows"` // we don't care about this
}
var Default = &Config{
Editor: "nano",
Gopher: false,
Nopub: false,
PublishDir: "blog",
Publishing: false,
Rainbows: false,
}
func Read() (config *Config, err error) {
file, err := os.Open(path.Join(os.Getenv("HOME"), ".ttbp/config/ttbprc"))
if err != nil {
return
}
defer file.Close()
decoder := json.NewDecoder(file)
err = decoder.Decode(&config)
return
}
func (config *Config) Write() (err error) {
file, err := os.Create(path.Join(os.Getenv("HOME"), ".ttbp/config/ttbprc"))
if err != nil {
return
}
defer file.Close()
encoder := json.NewEncoder(file)
err = encoder.Encode(config)
return
}