| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Imm.Boot
- imm :: (a -> CoHttpClientF IO a, a) -> (b -> CoDatabaseF' IO b, b) -> (c -> CoLoggerF IO c, c) -> (d -> CoHooksF IO d, d) -> IO ()
Documentation
Arguments
| :: (a -> CoHttpClientF IO a, a) | HTTP client interpreter (cf Imm.HTTP) |
| -> (b -> CoDatabaseF' IO b, b) | Database interpreter (cf Imm.Database) |
| -> (c -> CoLoggerF IO c, c) | Logger interpreter (cf Imm.Logger) |
| -> (d -> CoHooksF IO d, d) | Hooks interpreter (cf Imm.Hooks) |
| -> IO () |
Main function, meant to be used in your personal configuration file,
by default located at $XDG_CONFIG_HOME/imm/imm.hs.
For more information about the dynamic reconfiguration system, please consult Config.Dyre.
Here is an example:
import Imm.Boot
import Imm.Database.JsonFile
import Imm.Feed
import Imm.Hooks.SendMail
import Imm.HTTP.Simple
import Imm.Logger.Simple
main :: IO ()
main = do
logger <- defaultLogger
manager <- defaultManager
database <- defaultDatabase
imm (mkCoHttpClient, manager) (mkCoDatabase, database) (mkCoLogger, logger) (mkCoHooks, sendmail)
sendmail :: SendMailSettings
sendmail = SendMailSettings smtpServer formatMail
formatMail :: FormatMail
formatMail = FormatMail
(\a b -> (defaultFormatFrom a b) { addressEmail = "user@host" } )
defaultFormatSubject
defaultFormatBody
(\_ _ -> [Address Nothing "user@host"])
smtpServer :: Feed -> FeedElement -> SMTPServer
smtpServer _ _ = SMTPServer
(Just $ Authentication PLAIN "user" "password")
(StartTls "smtp.host" defaultSettingsSMTPSTARTTLS)