mirror of
https://github.com/makeworld-the-better-one/amfora.git
synced 2024-11-23 00:56:29 +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
|
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() {
|
||||||
|
Loading…
Reference in New Issue
Block a user