stash/pkg/manager/config/config.go
2019-08-23 08:24:14 +10:00

103 lines
1.6 KiB
Go

package config
import (
"io/ioutil"
"github.com/spf13/viper"
"github.com/stashapp/stash/pkg/utils"
)
const Stash = "stash"
const Cache = "cache"
const Generated = "generated"
const Metadata = "metadata"
const Downloads = "downloads"
const Database = "database"
const Host = "host"
const Port = "port"
const CSSEnabled = "cssEnabled"
func Set(key string, value interface{}) {
viper.Set(key, value)
}
func Write() error {
return viper.WriteConfig()
}
func GetStashPaths() []string {
return viper.GetStringSlice(Stash)
}
func GetCachePath() string {
return viper.GetString(Cache)
}
func GetGeneratedPath() string {
return viper.GetString(Generated)
}
func GetMetadataPath() string {
return viper.GetString(Metadata)
}
func GetDatabasePath() string {
return viper.GetString(Database)
}
func GetHost() string {
return viper.GetString(Host)
}
func GetPort() int {
return viper.GetInt(Port)
}
func GetCSSPath() string {
// search for custom.css in current directory, then $HOME/.stash
fn := "custom.css"
exists, _ := utils.FileExists(fn)
if !exists {
fn = "$HOME/.stash/" + fn
}
return fn
}
func GetCSS() string {
fn := GetCSSPath()
exists, _ := utils.FileExists(fn)
if !exists {
return ""
}
buf, err := ioutil.ReadFile(fn)
if err != nil {
return ""
}
return string(buf)
}
func SetCSS(css string) {
fn := GetCSSPath()
buf := []byte(css)
ioutil.WriteFile(fn, buf, 0777)
}
func GetCSSEnabled() bool {
return viper.GetBool(CSSEnabled)
}
func IsValid() bool {
setPaths := viper.IsSet(Stash) && viper.IsSet(Cache) && viper.IsSet(Generated) && viper.IsSet(Metadata)
// TODO: check valid paths
return setPaths
}