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
27 , _gc_frame_write_url :: Text
28 , _gc_frame_calc_url :: Text
32 makeLenses ''GargConfig
35 readConfig :: FilePath -> IO GargConfig
38 let ini'' = case ini of
39 Left e -> panic (pack $ "No ini file error" <> show e)
42 let val x = case (lookupValue (pack "gargantext") (pack x) ini'') of
43 Left _ -> panic (pack $ "no" <> x)
46 pure $ GargConfig (val "MASTER_USER")
48 (val "FRAME_WRITE_URL")
49 (val "FRAME_CALC_URL")
51 defaultConfig :: GargConfig
52 defaultConfig = GargConfig "gargantua" "secret" "https://frame_write.url" "https://frame_calc.url"