]> gitweb.michael.orlitzky.com - dead/halcyon.git/blobdiff - src/CommandLine.hs
Put replies before retweets in the options.
[dead/halcyon.git] / src / CommandLine.hs
index 8d8ceab521037a38dca6e7f19b9c505b0884d61e..919a3a2136f11a76a9da1441e36b7497084ad407 100644 (file)
@@ -5,6 +5,8 @@ module CommandLine
 ( heartbeat,
   help_set,
   help_text,
+  ignore_replies_set,
+  ignore_retweets_set,
   from_email_address,
   to_email_address,
   parse_errors,
@@ -20,6 +22,8 @@ import System.Environment (getArgs)
 -- |A record containing values for all available options.
 data Options = Options { opt_heartbeat :: Maybe Int,
                          opt_help  :: Bool,
+                         opt_ignore_replies :: Bool,
+                         opt_ignore_retweets :: Bool,
                          opt_from :: Maybe String,
                          opt_to :: Maybe String }
 
@@ -29,6 +33,8 @@ data Options = Options { opt_heartbeat :: Maybe Int,
 default_options :: Options
 default_options = Options { opt_heartbeat = Just 600,
                             opt_help = False,
+                            opt_ignore_replies = False,
+                            opt_ignore_retweets = False,
                             opt_from = Nothing,
                             opt_to = Nothing }
 
@@ -43,10 +49,35 @@ default_options = Options { opt_heartbeat = Just 600,
 --
 options :: [OptDescr (Options -> IO Options)]
 options =
-  [ Option ['h'][] (NoArg set_help) "Prints this help message.",
-    Option ['n'][] (ReqArg set_heartbeat "heartbeat") "How many seconds to wait between polling.",
-    Option ['t'][] (ReqArg set_to "email_address") "Send tweets TO email_address.",
-    Option ['f'][] (ReqArg set_from "email_address") "Send tweets FROM email_address."
+  [ Option
+      ['h']["help"]
+      (NoArg set_help)
+      "Prints this help message.",
+           
+    Option
+      ['n']["heartbeat"]
+      (ReqArg set_heartbeat "heartbeat")
+      "How many seconds to wait between polling.",
+    
+    Option
+      ['t']["to"]
+      (ReqArg set_to "email_address")
+      "Send tweets TO email_address.",
+
+    Option
+      ['f']["from"]
+      (ReqArg set_from "email_address")
+      "Send tweets FROM email_address.",
+
+    Option
+      ['i']["ignore-replies"]
+      (NoArg set_ignore_replies)
+      "Ignore replies.",
+
+    Option
+      ['I']["ignore-retweets"]
+      (NoArg set_ignore_retweets)
+      "Ignore retweets."
   ]
 
 
@@ -67,6 +98,14 @@ set_help :: Options -> IO Options
 set_help opts = do
   return opts { opt_help = True }
 
+set_ignore_retweets :: Options -> IO Options
+set_ignore_retweets opts =
+  return opts { opt_ignore_retweets = True }
+
+set_ignore_replies :: Options -> IO Options
+set_ignore_replies opts =
+  return opts { opt_ignore_replies = True }
+
 set_to :: String -> Options -> IO Options
 set_to arg opts = do
   return opts { opt_to = Just arg }
@@ -166,6 +205,18 @@ help_set = do
     opts <- parse_options
     return (opt_help opts)
 
+-- | Was the "ignore-replies" option passes on the command line?
+ignore_replies_set :: IO Bool
+ignore_replies_set = do
+  opts <- parse_options
+  return (opt_ignore_replies opts)
+
+-- | Was the "ignore-retweets" option passes on the command line?
+ignore_retweets_set :: IO Bool
+ignore_retweets_set = do
+  opts <- parse_options
+  return (opt_ignore_retweets opts)
+
 -- |What's the heartbeat?
 heartbeat :: IO (Maybe Int)
 heartbeat = do