2 Module : Gargantext.Config
3 Description : Textmining Collaborative Platform
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
12 {-# LANGUAGE TemplateHaskell #-}
14 module Gargantext.Config where
16 import System.IO (FilePath)
17 import Data.Ini (readIniFile, lookupValue)
18 import Data.Either.Extra (Either(Left, Right))
19 import Gargantext.Prelude
20 import Data.Text (Text, pack)
21 import GHC.Generics (Generic)
22 import Control.Lens (makeLenses)
25 data GargConfig = GargConfig { _gc_masteruser :: !Text
26 , _gc_secretkey :: !Text
28 , _gc_frame_write_url :: !Text
29 , _gc_frame_calc_url :: !Text
31 , _gc_frame_searx_url :: !Text
32 , _gc_frame_istex_url :: !Text
36 makeLenses ''GargConfig
39 readConfig :: FilePath -> IO GargConfig
42 let ini'' = case ini of
43 Left e -> panic (pack $ "No ini file error" <> show e)
46 let val x = case (lookupValue (pack "gargantext") (pack x) ini'') of
47 Left _ -> panic (pack $ "no" <> x)
50 pure $ GargConfig (val "MASTER_USER")
52 (val "FRAME_WRITE_URL")
53 (val "FRAME_CALC_URL")
54 (val "FRAME_SEARX_URL")
55 (val "FRAME_ISTEX_URL")
57 defaultConfig :: GargConfig
58 defaultConfig = GargConfig "gargantua"
60 "https://frame_write.url"
61 "https://frame_calc.url"
62 "https://frame_searx.url"
63 "https://frame_istex.url"