mirror of
https://github.com/makeworld-the-better-one/amfora.git
synced 2024-11-26 10:15:13 +03:00
🎨 Reorganize config.go - taken from feeds branch
This commit is contained in:
parent
ac46c68e17
commit
075348bc64
110
config/config.go
110
config/config.go
@ -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
|
||||
|
||||
import (
|
||||
@ -35,6 +38,9 @@ var DownloadsDir string
|
||||
|
||||
//nolint:golint,goerr113
|
||||
func Init() error {
|
||||
|
||||
// *** Set paths ***
|
||||
|
||||
home, err := homedir.Dir()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -103,7 +109,7 @@ func Init() error {
|
||||
}
|
||||
bkmkPath = filepath.Join(bkmkDir, "bookmarks.toml")
|
||||
|
||||
// Create necessary files and folders
|
||||
// *** Create necessary files and folders ***
|
||||
|
||||
// Config
|
||||
err = os.MkdirAll(configDir, 0755)
|
||||
@ -125,58 +131,21 @@ func Init() error {
|
||||
if err != nil {
|
||||
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
|
||||
err = os.MkdirAll(bkmkDir, 0755)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
os.OpenFile(bkmkPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666) //nolint:errcheck
|
||||
|
||||
// Setup vipers
|
||||
|
||||
TofuStore.SetConfigFile(tofuDBPath)
|
||||
TofuStore.SetConfigType("toml")
|
||||
err = TofuStore.ReadInConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
f, err = os.OpenFile(bkmkPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
|
||||
if err == nil {
|
||||
f.Close()
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
// *** Downloads paths, setup, and creation ***
|
||||
|
||||
// Setup downloads dir
|
||||
if viper.GetString("a-general.downloads") == "" {
|
||||
@ -209,11 +178,58 @@ func Init() error {
|
||||
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
|
||||
cache.SetMaxSize(viper.GetInt("cache.max_size"))
|
||||
cache.SetMaxPages(viper.GetInt("cache.max_pages"))
|
||||
|
||||
// Theme
|
||||
// Setup theme
|
||||
configTheme := viper.Sub("theme")
|
||||
if configTheme != nil {
|
||||
for k, v := range configTheme.AllSettings() {
|
||||
|
Loading…
Reference in New Issue
Block a user