about summary refs log tree commit diff stats
path: root/internal/config
diff options
context:
space:
mode:
authorAlan Pearce2024-06-09 17:54:57 +0200
committerAlan Pearce2024-06-09 17:54:57 +0200
commit63599c719d8e4e09548546bb366a849ef40c602b (patch)
tree549336370f77a8a1a3c626fe6bf0118f32baef59 /internal/config
parent789d0079f84017ddafad763ffba9aadbcd6aa6da (diff)
downloadsearchix-63599c719d8e4e09548546bb366a849ef40c602b.tar.lz
searchix-63599c719d8e4e09548546bb366a849ef40c602b.tar.zst
searchix-63599c719d8e4e09548546bb366a849ef40c602b.zip
feat: add low-memory mode
Diffstat (limited to 'internal/config')
-rw-r--r--internal/config/config.go2
-rw-r--r--internal/config/default.go9
-rw-r--r--internal/config/structs.go7
3 files changed, 10 insertions, 8 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
index c8739f0..83ddd2c 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -91,7 +91,7 @@ func mustLocalTime(in string) (time LocalTime) {
 }
 
 func GetConfig(filename string) (*Config, error) {
-	config := defaultConfig
+	config := DefaultConfig
 	if filename != "" {
 		slog.Debug("reading config", "filename", filename)
 		f, err := os.Open(filename)
diff --git a/internal/config/default.go b/internal/config/default.go
index 5e7b388..5b924a9 100644
--- a/internal/config/default.go
+++ b/internal/config/default.go
@@ -18,7 +18,7 @@ const self = "'self'"
 
 const maxAge = (1 * 365 * 24 * time.Hour)
 
-var defaultConfig = Config{
+var DefaultConfig = Config{
 	DataPath: "./data",
 	Web: &Web{
 		ListenAddress: "localhost",
@@ -47,8 +47,9 @@ var defaultConfig = Config{
 		},
 	},
 	Importer: &Importer{
-		Timeout:  Duration{30 * time.Minute},
-		UpdateAt: mustLocalTime("04:00:00"),
+		LowMemory: false,
+		Timeout:   Duration{30 * time.Minute},
+		UpdateAt:  mustLocalTime("04:00:00"),
 		Sources: map[string]*Source{
 			"nixos": {
 				Name:       "NixOS",
@@ -116,7 +117,7 @@ var defaultConfig = Config{
 }
 
 func GetDefaultConfig() string {
-	out, err := toml.Marshal(&defaultConfig)
+	out, err := toml.Marshal(&DefaultConfig)
 	if err != nil {
 		panic("could not read default configuration")
 	}
diff --git a/internal/config/structs.go b/internal/config/structs.go
index a434698..70283f2 100644
--- a/internal/config/structs.go
+++ b/internal/config/structs.go
@@ -27,9 +27,10 @@ type Web struct {
 }
 
 type Importer struct {
-	Sources  map[string]*Source
-	Timeout  Duration  `comment:"Abort fetch and import process for all jobs if it takes longer than this value."`
-	UpdateAt LocalTime `comment:"Local time of day to run fetch/import process"`
+	Sources   map[string]*Source
+	LowMemory bool      `comment:"Use less memory at the expense of import performance"`
+	Timeout   Duration  `comment:"Abort fetch and import process for all jobs if it takes longer than this value."`
+	UpdateAt  LocalTime `comment:"Local time of day to run fetch/import process"`
 }
 
 type Source struct {