options :: [OptDescr (Options -> IO Options)]
options =
[ Option
- [] ["consumer_key"]
- (ReqArg set_consumer_key "consumer_key")
+ "" ["consumer-key"]
+ (ReqArg set_consumer_key "consumer-key")
"Your Twitter API consumer key.",
Option
- [] ["consumer_secret"]
- (ReqArg set_consumer_secret "consumer_secret")
+ "" ["consumer-secret"]
+ (ReqArg set_consumer_secret "consumer-secret")
"Your Twitter API consumer secret.",
Option
- [] ["access_token"]
- (ReqArg set_access_token "access_token")
+ "" ["access-token"]
+ (ReqArg set_access_token "access-token")
"Your Twitter API access token.",
Option
- [] ["access_secret"]
- (ReqArg set_access_secret "access_secret")
+ "" ["access-secret"]
+ (ReqArg set_access_secret "access-secret")
"Your Twitter API access secret.",
Option
- ['h'] ["help"]
+ "h" ["help"]
(NoArg set_help)
"Prints this help message.",
Option
- ['n'] ["heartbeat"]
+ "n" ["heartbeat"]
(ReqArg set_heartbeat "heartbeat")
"How many seconds to wait between polling.",
Option
- ['t'] ["to"]
+ "t" ["to"]
(ReqArg set_to "email_address")
"Send tweets TO email_address.",
Option
- ['f'] ["from"]
+ "f" ["from"]
(ReqArg set_from "email_address")
"Send tweets FROM email_address.",
Option
- ['s'] ["sendmail_path"]
+ "s" ["sendmail_path"]
(ReqArg set_sendmail_path "sendmail_path")
"Use sendmail_path to send mail",
Option
- ['i'] ["ignore-replies"]
+ "i" ["ignore-replies"]
(NoArg set_ignore_replies)
"Ignore replies.",
Option
- ['I'] ["ignore-retweets"]
+ "I" ["ignore-retweets"]
(NoArg set_ignore_retweets)
"Ignore retweets.",
Option
- ['v'] ["verbose"]
+ "v" ["verbose"]
(NoArg set_verbose)
"Be verbose about stuff."
]
_ -> Nothing
set_consumer_key :: String -> Options -> IO Options
-set_consumer_key arg opts = do
+set_consumer_key arg opts =
return opts { opt_consumer_key = Just arg }
set_consumer_secret :: String -> Options -> IO Options
-set_consumer_secret arg opts = do
+set_consumer_secret arg opts =
return opts { opt_consumer_secret = Just arg }
set_access_token :: String -> Options -> IO Options
-set_access_token arg opts = do
+set_access_token arg opts =
return opts { opt_access_token = Just arg }
set_access_secret :: String -> Options -> IO Options
-set_access_secret arg opts = do
+set_access_secret arg opts =
return opts { opt_access_secret = Just arg }
set_heartbeat :: String -> Options -> IO Options
return opts { opt_heartbeat = new_heartbeat }
set_help :: Options -> IO Options
-set_help opts = do
+set_help opts =
return opts { opt_help = True }
set_ignore_retweets :: Options -> IO Options
return opts { opt_verbose = True }
set_sendmail_path :: String -> Options -> IO Options
-set_sendmail_path arg opts = do
+set_sendmail_path arg opts =
return opts { opt_sendmail_path = arg }
set_to :: String -> Options -> IO Options
-set_to arg opts = do
+set_to arg opts =
return opts { opt_to = Just arg }
set_from :: String -> Options -> IO Options
-set_from arg opts = do
+set_from arg opts =
return opts { opt_from = Just arg }
-- | The usage header.
usage :: String
-usage = "Usage: twat --consumer_key=<key> --consumer_secret=<secret> --access_token=<key> --access_secret=<secret> [-n heartbeat] [-t to_address] [-f from_address] [-s path-to-sendmail] <username1> [username2, [username3]...]"
+usage = "Usage: twat --consumer-key=<key> --consumer-secret=<secret> --access-token=<key> --access-secret=<secret> [-n heartbeat] [-t to_address] [-f from_address] [-s path-to-sendmail] <username1> [username2, [username3]...]"
-- | Was the help option passed?
-- list, one after another, on a default_options record. The end
-- result should be an Options instance with all of its members set
-- correctly.
- opts <- foldl (>>=) (return default_options) actions
-
- return opts
+ foldl (>>=) (return default_options) actions
-- | A list of parse errors relating to the heartbeat.
heartbeat_errors :: IO [String]
heartbeat_errors = do
hb <- parse_heartbeat
- if (isNothing hb)
- then return ["\"heartbeat\" does not appear to be an integer."]
- else return []
+ return ["\"heartbeat\" does not appear to be an integer." | isNothing hb ]
-- | Parse errors relating to the list of usernames.
username_errors :: IO [String]
username_errors = do
argv <- getArgs
let (_, usernames, _) = getOpt Permute options argv
-
- if (null usernames)
- then return ["no usernames provided."]
- else return []
+ return [ "no usernames provided." | null usernames ]
-- | Parse errors relating to the "To" address.
to_errors = do
toaddr <- parse_to_address
fromaddr <- parse_from_address
- if (isNothing toaddr) && (isJust fromaddr)
- then return ["\"from\" address specified without \"to\" address."]
- else return []
+ return ["\"from\" address specified without \"to\" address."
+ | (isNothing toaddr) && (isJust fromaddr) ]
-- | Errors for the sendmail path argument.
sendmail_path_errors = do
sendmail <- parse_sendmail_path
exists <- doesFileExist sendmail
- if (not exists)
- then return ["sendmail path does not exist"]
- else return []
+ return [ "sendmail path does not exist" | not exists ]
-- | Parse errors relating to the "From" address.
from_errors = do
toaddr <- parse_to_address
fromaddr <- parse_from_address
- if (isJust toaddr) && (isNothing fromaddr)
- then return ["\"to\" address specified without \"from\" address."]
- else return []
+ return [ "\"to\" address specified without \"from\" address."
+ | (isJust toaddr) && (isNothing fromaddr) ]
-- | Format an error message for printing.