aboutsummaryrefslogtreecommitdiff
path: root/server/src/Thermoprint/Server/Printer/Debug.hs
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-01-24 16:10:48 +0000
committerGregor Kleen <gkleen@yggdrasil.li>2016-01-24 16:10:48 +0000
commitc3a6d0657eb2987aa13b53419269274d848d9e0c (patch)
treefcf161b74fffad2294efc0b558a0dfd1bc27d49b /server/src/Thermoprint/Server/Printer/Debug.hs
parent7d3df6adce65e8840ef651a8a02a34a1a02083aa (diff)
downloadthermoprint-c3a6d0657eb2987aa13b53419269274d848d9e0c.tar
thermoprint-c3a6d0657eb2987aa13b53419269274d848d9e0c.tar.gz
thermoprint-c3a6d0657eb2987aa13b53419269274d848d9e0c.tar.bz2
thermoprint-c3a6d0657eb2987aa13b53419269274d848d9e0c.tar.xz
thermoprint-c3a6d0657eb2987aa13b53419269274d848d9e0c.zip
Working printer config & debug printer
Diffstat (limited to 'server/src/Thermoprint/Server/Printer/Debug.hs')
-rw-r--r--server/src/Thermoprint/Server/Printer/Debug.hs39
1 files changed, 39 insertions, 0 deletions
diff --git a/server/src/Thermoprint/Server/Printer/Debug.hs b/server/src/Thermoprint/Server/Printer/Debug.hs
new file mode 100644
index 0000000..b8c1430
--- /dev/null
+++ b/server/src/Thermoprint/Server/Printer/Debug.hs
@@ -0,0 +1,39 @@
1{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE RankNTypes #-}
3{-# LANGUAGE TemplateHaskell #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE FlexibleInstances #-}
6
7module Thermoprint.Server.Printer.Debug
8 ( Debug(..)
9 ) where
10
11import Control.Monad.IO.Class
12import Control.Monad.Trans.Resource
13import Control.Monad.Logger
14
15import Data.Text.Lazy (Text)
16import qualified Data.Text.Lazy as TL
17
18import qualified Data.Text as T
19
20import Thermoprint.Printout
21import Thermoprint.Server.Printer
22
23import Data.List (intersperse)
24import Data.Foldable (toList)
25import Data.Monoid
26
27data Debug = Debug
28
29instance Applicative m => IsPrinter Debug m where
30 printMethod _ = printMethod debugPrinter
31
32debugPrinter :: PrinterMethod
33debugPrinter = PM $ (>> return Nothing) . $(logDebugS) "Printer.Debug" . T.pack . show . cotext'
34
35cotext' :: Printout -> Text
36cotext' = mconcat . intersperse "\n\n" . map (mconcat . map cotext'' . toList) . toList
37 where
38 cotext'' (Cooked b) = cotext b
39 cotext'' (Raw _) = "[Raw]"