{-# LANGUAGE TemplateHaskell #-}
module StatusNotifier.Watcher.Client where

import DBus.Generation
import Language.Haskell.TH

import StatusNotifier.Watcher.Constants
import StatusNotifier.Watcher.Service

generateClient watcherClientGenerationParams watcherInterface

printWatcherClient :: IO ()
printWatcherClient =
  Q [Dec] -> IO [Dec]
forall (m :: * -> *) a. Quasi m => Q a -> m a
runQ (GenerationParams -> Interface -> Q [Dec]
generateClient GenerationParams
watcherClientGenerationParams Interface
watcherInterface) IO [Dec] -> ([Dec] -> IO ()) -> IO ()
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
       String -> IO ()
putStrLn (String -> IO ()) -> ([Dec] -> String) -> [Dec] -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Dec] -> String
forall a. Ppr a => a -> String
pprint