aboutsummaryrefslogtreecommitdiff
path: root/src/Tomato/App.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Tomato/App.hs')
-rw-r--r--src/Tomato/App.hs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/Tomato/App.hs b/src/Tomato/App.hs
new file mode 100644
index 0000000..14bf61a
--- /dev/null
+++ b/src/Tomato/App.hs
@@ -0,0 +1,32 @@
+module Tomato.App
+ ( App (..)
+ , runApp
+ ) where
+
+import RIO
+
+
+data App = App
+ { appLogFunc :: !LogFunc
+ , appToken :: !ByteString
+ , appBotId :: !Text
+ , appFile :: !FilePath
+ , appClientId :: !Text
+ }
+
+instance HasLogFunc App where
+ logFuncL = lens appLogFunc (\x y -> x { appLogFunc = y })
+
+runApp :: RIO App a -> IO a
+runApp inner = do
+ logOptions' <- logOptionsHandle stderr False
+ let logOptions = setLogUseTime True $ setLogUseLoc True logOptions'
+ withLogFunc logOptions $ \logFunc -> do
+ let app = App
+ { appLogFunc = logFunc
+ , appToken = "t2YhlxxwZmn2cWfkAomjMc6BgVPMaC5NRkqHzGQl"
+ , appBotId = "713bcb4a4604006c944804552c"
+ , appFile = "tomato.png"
+ , appClientId = "FbzqI-oR7277JwL1ZGsyUw7yG1F5U0U3WhQ3kOW71Do"
+ }
+ runRIO app inner