From 06c756a5a12f8c7e1bf6dc29a173ead2949b0c93 Mon Sep 17 00:00:00 2001 From: Denis Tereshkin Date: Sun, 25 Jul 2021 11:16:13 +0700 Subject: [PATCH] Argument orverriding --- src/Main.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Main.hs b/src/Main.hs index c3bf289..7ed14c9 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Main where import Control.Concurrent hiding (newChan, readChan, @@ -7,6 +8,7 @@ import Control.Exception.Safe import Control.Monad import Data.Aeson import qualified Data.HashMap.Strict as HM +import Data.Monoid import qualified Data.Text as T import qualified Data.Text.IO as TIO import Data.Time.Clock @@ -17,7 +19,8 @@ import System.IO import System.Process newtype ArgsMap = ArgsMap { unArgsMap :: HM.HashMap T.Text T.Text } - deriving (Show, Eq) + deriving (Show, Eq, Semigroup) + data Config = Config { @@ -102,7 +105,7 @@ runWithConfig config = do globalLogger outChan 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 globalLogger chan = withFile (cGlobalLog config) AppendMode $ \log -> forever $ do line <- readChan chan