mirror of
https://github.com/stashapp/stash.git
synced 2025-12-14 04:13:56 +01:00
103 lines
1.6 KiB
Go
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
|
|
}
|