{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} -- | A printer which just writes all jobs to log module Thermoprint.Server.Printer.Debug ( debugPrint ) where import Control.Monad.IO.Class import Control.Monad.Trans.Resource import Control.Monad.Logger import Data.Text.Lazy (Text) import qualified Data.Text.Lazy as TL import qualified Data.Text as T import Thermoprint.Printout import Thermoprint.Server.Printer import Data.List (intersperse) import Data.Foldable (toList) import Data.Monoid debugPrint :: PrinterMethod debugPrint = PM $ (>> return Nothing) . $(logDebugS) "Printer.Debug" . T.pack . show . cotext' cotext' :: Printout -> Text cotext' = mconcat . intersperse "\n\n" . map (mconcat . map cotext'' . toList) . toList where cotext'' (Cooked b) = cotext b cotext'' (Raw _) = "[Raw]"