import Control.Concurrent (forkIO, threadDelay)
import Control.Monad (forever, when)
import System.Exit (ExitCode(..), exitWith)
-import System.Time (getClockTime)
import System.IO (hPutStrLn, stderr)
import CommandLine
recurse username latest_status_id maybe_message
_ -> do
let new_latest_status_id = get_max_status_id new_statuses
- mapM (putStrLn . pretty_print) new_statuses
+ _ <- mapM (putStrLn . pretty_print) new_statuses
case maybe_message of
Nothing -> do
recurse username new_latest_status_id maybe_message
return ()
Just message -> do
- date <- getClockTime
- let messages = map (message_from_status message (show date)) new_statuses
+ date_header <- construct_date_header
+ let messages = map (message_from_status message (date_header)) new_statuses
sendmail_results <- mapM sendmail messages
- mapM print_sendmail_result sendmail_results
+ _ <- mapM print_sendmail_result sendmail_results
recurse username new_latest_status_id maybe_message
return ()
case from_address of
Nothing -> Nothing
Just fromaddr ->
- Just (Message { headers = [],
+ Just (Message { headers = default_headers,
body = "",
subject = "",
to = toaddr,
from = fromaddr })
-- Execute run_twat on each username in a new thread.
- mapM (forkIO . (run_twat message)) usernames
+ _ <- mapM (forkIO . (run_twat message)) usernames
- forever $ do
+ _ <- forever $ do
-- This thread (the one executing main) doesn't do anything,
-- but when it terminates, so do all the threads we forked.
-- As a result, we need to keep this thread on life support.