Zed 7 лет назад
Родитель
Сommit
d0ee8e8403
1 измененных файлов с 23 добавлено и 0 удалено
  1. 23 0
      src/config.nim

+ 23 - 0
src/config.nim

@@ -0,0 +1,23 @@
+import parsecfg except Config
+import os, net, types, strutils
+
+proc get[T](config: parseCfg.Config; s, v: string; default: T): T =
+  let val = config.getSectionValue(s, v)
+  if val.len == 0: return default
+
+  when T is int: parseInt(val)
+  elif T is bool: parseBool(val)
+  elif T is string: val
+
+proc getConfig*(path: string): Config =
+  var cfg = loadConfig(path)
+
+  Config(
+    address: cfg.get("Server", "address", "0.0.0.0"),
+    port: cfg.get("Server", "port", 8080),
+    title: cfg.get("Server", "title", "Nitter"),
+    staticDir: cfg.get("Server", "staticDir", "./public"),
+
+    cacheDir: cfg.get("Cache", "directory", "/tmp/nitter"),
+    profileCacheTime: cfg.get("Cache", "profileMinutes", 10)
+  )