aboutsummaryrefslogtreecommitdiffstats
path: root/src/Reaktor/Plugins/System/Types.hs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2019-01-21 19:44:39 +0100
committertv <tv@krebsco.de>2019-01-21 19:44:39 +0100
commita00da57346c195b1b15d1c6aca2891483901aae6 (patch)
treefab49308ba6a4a96a0eb01fa7eb8f727d9c95f07 /src/Reaktor/Plugins/System/Types.hs
parent2842e05c232505c670daee0fffb9a34d5c866217 (diff)
src: Types -> Internal
Diffstat (limited to 'src/Reaktor/Plugins/System/Types.hs')
-rw-r--r--src/Reaktor/Plugins/System/Types.hs75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/Reaktor/Plugins/System/Types.hs b/src/Reaktor/Plugins/System/Types.hs
deleted file mode 100644
index 39d2f75..0000000
--- a/src/Reaktor/Plugins/System/Types.hs
+++ /dev/null
@@ -1,75 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module Reaktor.Plugins.System.Types where
-
-import Data.Aeson
-import qualified Data.ByteString.Char8.Extended as BS
-import qualified Data.Map as M
-import Reaktor.Types ()
-
-
--- TODO this needs better names :)
-data CaptureOr a = Capture Integer | CaptureOr a
- deriving Show -- TODO killme
-
-instance FromJSON a => FromJSON (CaptureOr a) where
- parseJSON o@(Number _) = Capture <$> parseJSON o -- TODO don't parse twice
- parseJSON o = CaptureOr <$> parseJSON o
-
--- TODO query means via direct privmsg and <nick>:
-data Activate = Always | Match | Query
-
-instance FromJSON Activate where
- parseJSON (String "always") = pure Always
- parseJSON (String "match") = pure Match
- parseJSON (String "query") = pure Query
- parseJSON _ = undefined
-
-data SystemConfig = SystemConfig {
- defaultWorkDir :: Maybe FilePath,
- -- TODO IrcCommand as key for map
- hooks :: M.Map BS.ByteString [SystemParams]
-}
-
-instance FromJSON SystemConfig where
- parseJSON (Object v) =
- SystemConfig
- <$> v .:? "workdir"
- <*> v .:? "hooks" .!= M.empty
- parseJSON _ = pure undefined
-
-data SystemParams = SystemParams {
- activate :: Activate,
- pattern :: Maybe BS.ByteString, -- TODO RE
- command :: CaptureOr SystemCommand,
- arguments :: [CaptureOr BS.ByteString],
- workDir :: Maybe FilePath,
- commands :: M.Map BS.ByteString SystemCommand
-}
-
-instance FromJSON SystemParams where
- parseJSON (Object v) =
- SystemParams
- <$> v .:? "activate" .!= Query
- <*> v .:? "pattern"
- <*> v .: "command"
- <*> v .:? "arguments" .!= []
- <*> v .:? "workdir"
- <*> v .:? "commands" .!= M.empty
- parseJSON _ = pure undefined
-
-
-data SystemCommand = SystemCommand {
- commandPath :: FilePath,
- commandWorkDir :: Maybe FilePath,
- commandEnv :: Maybe (M.Map String String)
- }
- deriving Show -- TODO killme
-
-instance FromJSON SystemCommand where
- parseJSON (Object v) =
- SystemCommand
- <$> v .: "filename"
- <*> v .:? "workdir"
- <*> v .:? "env"
- parseJSON _ = pure undefined
-