🎨 Reorganize config.go - taken from feeds branch

This commit is contained in:
makeworld 2020-09-01 22:32:34 -04:00
parent ac46c68e17
commit 075348bc64

View File

@ -1,3 +1,6 @@
// Package config initializes all files required for Amfora, even those used by
// other packages. It also reads in the config file and initializes a Viper and
// the theme
package config package config
import ( import (
@ -35,6 +38,9 @@ var DownloadsDir string
//nolint:golint,goerr113 //nolint:golint,goerr113
func Init() error { func Init() error {
// *** Set paths ***
home, err := homedir.Dir() home, err := homedir.Dir()
if err != nil { if err != nil {
return err return err
@ -103,7 +109,7 @@ func Init() error {
} }
bkmkPath = filepath.Join(bkmkDir, "bookmarks.toml") bkmkPath = filepath.Join(bkmkDir, "bookmarks.toml")
// Create necessary files and folders // *** Create necessary files and folders ***
// Config // Config
err = os.MkdirAll(configDir, 0755) err = os.MkdirAll(configDir, 0755)
@ -125,58 +131,21 @@ func Init() error {
if err != nil { if err != nil {
return err return err
} }
os.OpenFile(tofuDBPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666) //nolint:errcheck f, err = os.OpenFile(tofuDBPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
if err == nil {
f.Close()
}
// Bookmarks // Bookmarks
err = os.MkdirAll(bkmkDir, 0755) err = os.MkdirAll(bkmkDir, 0755)
if err != nil { if err != nil {
return err return err
} }
os.OpenFile(bkmkPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666) //nolint:errcheck f, err = os.OpenFile(bkmkPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
if err == nil {
// Setup vipers f.Close()
TofuStore.SetConfigFile(tofuDBPath)
TofuStore.SetConfigType("toml")
err = TofuStore.ReadInConfig()
if err != nil {
return err
} }
BkmkStore.SetConfigFile(bkmkPath) // *** Downloads paths, setup, and creation ***
BkmkStore.SetConfigType("toml")
err = BkmkStore.ReadInConfig()
if err != nil {
return err
}
BkmkStore.Set("DO NOT TOUCH", true)
err = BkmkStore.WriteConfig()
if err != nil {
return err
}
viper.SetDefault("a-general.home", "gemini.circumlunar.space")
viper.SetDefault("a-general.auto_redirect", false)
viper.SetDefault("a-general.http", "default")
viper.SetDefault("a-general.search", "gus.guru/search")
viper.SetDefault("a-general.color", true)
viper.SetDefault("a-general.bullets", true)
viper.SetDefault("a-general.left_margin", 0.15)
viper.SetDefault("a-general.max_width", 100)
viper.SetDefault("a-general.downloads", "")
viper.SetDefault("a-general.page_max_size", 2097152)
viper.SetDefault("a-general.page_max_time", 10)
viper.SetDefault("a-general.emoji_favicons", false)
viper.SetDefault("keybindings.shift_numbers", "!@#$%^&*()")
viper.SetDefault("url-handlers.other", "off")
viper.SetDefault("cache.max_size", 0)
viper.SetDefault("cache.max_pages", 20)
viper.SetConfigFile(configPath)
viper.SetConfigType("toml")
err = viper.ReadInConfig()
if err != nil {
return err
}
// Setup downloads dir // Setup downloads dir
if viper.GetString("a-general.downloads") == "" { if viper.GetString("a-general.downloads") == "" {
@ -209,11 +178,58 @@ func Init() error {
DownloadsDir = dDir DownloadsDir = dDir
} }
// *** Setup vipers ***
TofuStore.SetConfigFile(tofuDBPath)
TofuStore.SetConfigType("toml")
err = TofuStore.ReadInConfig()
if err != nil {
return err
}
BkmkStore.SetConfigFile(bkmkPath)
BkmkStore.SetConfigType("toml")
err = BkmkStore.ReadInConfig()
if err != nil {
return err
}
BkmkStore.Set("DO NOT TOUCH", true)
err = BkmkStore.WriteConfig()
if err != nil {
return err
}
// Setup main config
viper.SetDefault("a-general.home", "gemini.circumlunar.space")
viper.SetDefault("a-general.auto_redirect", false)
viper.SetDefault("a-general.http", "default")
viper.SetDefault("a-general.search", "gus.guru/search")
viper.SetDefault("a-general.color", true)
viper.SetDefault("a-general.bullets", true)
viper.SetDefault("a-general.left_margin", 0.15)
viper.SetDefault("a-general.max_width", 100)
viper.SetDefault("a-general.downloads", "")
viper.SetDefault("a-general.page_max_size", 2097152)
viper.SetDefault("a-general.page_max_time", 10)
viper.SetDefault("a-general.emoji_favicons", false)
viper.SetDefault("keybindings.shift_numbers", "!@#$%^&*()")
viper.SetDefault("url-handlers.other", "off")
viper.SetDefault("cache.max_size", 0)
viper.SetDefault("cache.max_pages", 20)
viper.SetConfigFile(configPath)
viper.SetConfigType("toml")
err = viper.ReadInConfig()
if err != nil {
return err
}
// Setup cache from config // Setup cache from config
cache.SetMaxSize(viper.GetInt("cache.max_size")) cache.SetMaxSize(viper.GetInt("cache.max_size"))
cache.SetMaxPages(viper.GetInt("cache.max_pages")) cache.SetMaxPages(viper.GetInt("cache.max_pages"))
// Theme // Setup theme
configTheme := viper.Sub("theme") configTheme := viper.Sub("theme")
if configTheme != nil { if configTheme != nil {
for k, v := range configTheme.AllSettings() { for k, v := range configTheme.AllSettings() {