summaryrefslogtreecommitdiff
path: root/bragi/thermoprint-server
diff options
context:
space:
mode:
Diffstat (limited to 'bragi/thermoprint-server')
-rw-r--r--bragi/thermoprint-server/thermoprint-server.hs30
1 files changed, 30 insertions, 0 deletions
diff --git a/bragi/thermoprint-server/thermoprint-server.hs b/bragi/thermoprint-server/thermoprint-server.hs
new file mode 100644
index 00000000..4f909f80
--- /dev/null
+++ b/bragi/thermoprint-server/thermoprint-server.hs
@@ -0,0 +1,30 @@
1{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE ImpredicativeTypes #-}
3
4module Main (main) where
5
6import Thermoprint.Server
7
8import Thermoprint.Server.Printer.Generic
9
10import Control.Monad.Trans.Resource
11import Control.Monad.Logger
12import Control.Monad.Reader
13
14import Database.Persist.Postgresql
15
16main :: IO ()
17main = thermoprintServer True (Nat runDb) $ (\c -> c { queueManagers = queueManagers }) <$> def `withPrinters` printers
18 where
19 runDb :: ReaderT ConnectionPool (LoggingT IO) a -> IO a
20 runDb = runStderrLoggingT . withPostgresqlPool "" 5 . runReaderT
21
22 printers = [ (pure $ genericPrint "/dev/usb/lp0", def)
23 ]
24
25 queueManagers _ = QMConfig
26 { manager = union [ limitHistorySize 100
27 , limitHistoryAge 3600
28 ]
29 , collapse = standardCollapse
30 }