Browse Source

Argument orverriding

master
Denis Tereshkin 4 years ago
parent
commit
06c756a5a1
  1. 7
      src/Main.hs

7
src/Main.hs

@ -1,3 +1,4 @@
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Main where module Main where
import Control.Concurrent hiding (newChan, readChan, import Control.Concurrent hiding (newChan, readChan,
@ -7,6 +8,7 @@ import Control.Exception.Safe
import Control.Monad import Control.Monad
import Data.Aeson import Data.Aeson
import qualified Data.HashMap.Strict as HM import qualified Data.HashMap.Strict as HM
import Data.Monoid
import qualified Data.Text as T import qualified Data.Text as T
import qualified Data.Text.IO as TIO import qualified Data.Text.IO as TIO
import Data.Time.Clock import Data.Time.Clock
@ -17,7 +19,8 @@ import System.IO
import System.Process import System.Process
newtype ArgsMap = ArgsMap { unArgsMap :: HM.HashMap T.Text T.Text } newtype ArgsMap = ArgsMap { unArgsMap :: HM.HashMap T.Text T.Text }
deriving (Show, Eq) deriving (Show, Eq, Semigroup)
data Config = Config data Config = Config
{ {
@ -102,7 +105,7 @@ runWithConfig config = do
globalLogger outChan globalLogger outChan
where where
makeArgs globalArgs localArgs = fmap makeArg (HM.toList . unArgsMap $ globalArgs) ++ fmap makeArg (HM.toList . unArgsMap $ localArgs) makeArgs globalArgs localArgs = fmap makeArg (HM.toList . unArgsMap $ localArgs <> globalArgs)
makeArg (k, v) = T.unpack $ if v /= "" then "--" <> k <> "=" <> v else "--" <> k makeArg (k, v) = T.unpack $ if v /= "" then "--" <> k <> "=" <> v else "--" <> k
globalLogger chan = withFile (cGlobalLog config) AppendMode $ \log -> forever $ do globalLogger chan = withFile (cGlobalLog config) AppendMode $ \log -> forever $ do
line <- readChan chan line <- readChan chan

Loading…
Cancel
Save