summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thermoprint-server.hs30
1 files changed, 30 insertions, 0 deletions
diff --git a/thermoprint-server.hs b/thermoprint-server.hs
new file mode 100644
index 0000000..40d404f
--- /dev/null
+++ b/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.Sqlite
15
16main :: IO ()
17main = thermoprintServer True (Nat runSqlite) $ (\c -> c { queueManagers = queueManagers }) <$> def `withPrinters` printers
18 where
19 runSqlite :: ReaderT ConnectionPool (LoggingT IO) a -> IO a
20 runSqlite = runStderrLoggingT . withSqlitePool "thermoprint.sqlite" 1 . 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 }