diff options
Diffstat (limited to 'fig-monitor-bullfrog')
| -rw-r--r-- | fig-monitor-bullfrog/fig-monitor-bullfrog.cabal | 54 | ||||
| -rw-r--r-- | fig-monitor-bullfrog/main/Main.hs | 29 | ||||
| -rw-r--r-- | fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog.hs | 36 | ||||
| -rw-r--r-- | fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog/Utils.hs | 29 |
4 files changed, 0 insertions, 148 deletions
diff --git a/fig-monitor-bullfrog/fig-monitor-bullfrog.cabal b/fig-monitor-bullfrog/fig-monitor-bullfrog.cabal deleted file mode 100644 index 0cc111e..0000000 --- a/fig-monitor-bullfrog/fig-monitor-bullfrog.cabal +++ /dev/null @@ -1,54 +0,0 @@ -cabal-version: 3.4 -name: fig-monitor-bullfrog -version: 0.1.0.0 - -common defaults - ghc-options: -Wall - default-language: GHC2021 - default-extensions: NoImplicitPrelude PackageImports LambdaCase MultiWayIf OverloadedStrings OverloadedLists OverloadedRecordDot DuplicateRecordFields RecordWildCards NoFieldSelectors BlockArguments ViewPatterns TypeFamilies DataKinds GADTs - -common deps - build-depends: - base - , aeson - , base64 - , binary - , bytestring - , containers - , data-default-class - , directory - , filepath - , http-types - , http-client - , http-client-tls - , megaparsec - , mtl - , network - , safe-exceptions - , text - , time - , tomland - , transformers - , unordered-containers - , vector - , warp - , websockets - , wuss - , fig-utils - , fig-bus - -library - import: defaults - import: deps - hs-source-dirs: src - exposed-modules: - Fig.Monitor.Bullfrog - Fig.Monitor.Bullfrog.Utils - -executable fig-monitor-bullfrog - import: defaults - import: deps - build-depends: fig-monitor-bullfrog, optparse-applicative - hs-source-dirs: - main - main-is: Main.hs diff --git a/fig-monitor-bullfrog/main/Main.hs b/fig-monitor-bullfrog/main/Main.hs deleted file mode 100644 index 966e0a1..0000000 --- a/fig-monitor-bullfrog/main/Main.hs +++ /dev/null @@ -1,29 +0,0 @@ -module Main where - -import Fig.Prelude - -import Options.Applicative - -import Fig.Monitor.Bullfrog -import Fig.Monitor.Bullfrog.Utils - -data Opts = Opts - { busHost :: Text - , busPort :: Text - , config :: FilePath - } - -parseOpts :: Parser Opts -parseOpts = Opts - <$> strOption (long "bus-host" <> metavar "HOST" <> help "Address of message bus" <> value "localhost") - <*> strOption (long "bus-port" <> metavar "PORT" <> help "Message bus port" <> showDefault <> value "32050") - <*> strOption (long "config" <> metavar "PATH" <> help "Path to config file" <> showDefault <> value "fig-monitor-bullfrog.toml") - -main :: IO () -main = do - opts <- execParser $ info (parseOpts <**> helper) - ( fullDesc - <> header "fig-monitor-bullfrog - monitor Bullfrog broadcast server" - ) - cfg <- loadConfig opts.config - bullfrogClient cfg (opts.busHost, opts.busPort) diff --git a/fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog.hs b/fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog.hs deleted file mode 100644 index 1b0f42c..0000000 --- a/fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog.hs +++ /dev/null @@ -1,36 +0,0 @@ -{-# Language QuasiQuotes #-} -{-# Language RecordWildCards #-} -{-# Language ApplicativeDo #-} - -module Fig.Monitor.Bullfrog - ( bullfrogClient - ) where - -import Fig.Prelude - -import qualified Data.Text as Text - -import qualified Wuss as WS -import qualified Network.WebSockets.Connection as WS - -import Fig.Utils.SExpr -import Fig.Bus.SExpr.Client -import Fig.Monitor.Bullfrog.Utils - -bullfrogClient :: Config -> (Text, Text) -> IO () -bullfrogClient cfg busAddr = do - WS.runSecureClient "colonq.computer" 443 ("/bullfrog/api/channel/broadcast?token=" <> Text.unpack cfg.authToken) \conn -> do - busClient busAddr - (\cmds -> do - log "Connected to bus and broadcast server" - cmds.subscribe [sexp|(monitor bullfrog broadcast)|] - ) - (\_cmds d -> do - case d of - SExprList [ev, SExprString msg] - | ev == [sexp|(monitor bullfrog broadcast)|] -> do - log $ "Broadcasting message: " <> msg - WS.sendTextData conn msg - _ -> log $ "Invalid incoming message: " <> tshow d - ) - (pure ()) diff --git a/fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog/Utils.hs b/fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog/Utils.hs deleted file mode 100644 index b0ae02b..0000000 --- a/fig-monitor-bullfrog/src/Fig/Monitor/Bullfrog/Utils.hs +++ /dev/null @@ -1,29 +0,0 @@ -{-# Language ApplicativeDo #-} - -module Fig.Monitor.Bullfrog.Utils - ( FigMonitorBullfrogException(..) - , Config(..) - , loadConfig - ) where - -import Fig.Prelude - -import qualified Toml - -newtype FigMonitorBullfrogException = FigMonitorBullfrogException Text - deriving (Show, Eq, Ord) -instance Exception FigMonitorBullfrogException - -newtype Config = Config - { authToken :: Text - } deriving (Show, Eq, Ord) - -configCodec :: Toml.TomlCodec Config -configCodec = do - authToken <- Toml.text "auth_token" Toml..= (\a -> a.authToken) - pure $ Config{..} - -loadConfig :: FilePath -> IO Config -loadConfig path = Toml.decodeFileEither configCodec path >>= \case - Left err -> throwM . FigMonitorBullfrogException $ tshow err - Right config -> pure config |
