module CommandLine (
get_args,
- show_help)
+ show_help )
where
import System.Console.CmdArgs (
program,
summary,
typ,
- versionArg)
-import System.Environment (withArgs)
+ typFile,
+ versionArg )
+import System.Environment ( withArgs )
-- Get the version from Cabal.
-import Paths_halcyon (version)
-import Data.Version (showVersion)
+import Paths_halcyon ( version )
+import Data.Version ( showVersion )
-import OptionalConfiguration
+import OptionalConfiguration ( OptionalCfg(..) )
+
+-- | The description of the program, displayed as part of the help.
+--
description :: String
description =
"Monitor a list of Twitter accounts and display or email any new tweets."
+
+-- | The name of this program.
+--
program_name :: String
program_name = "halcyon"
+
+-- | A summary string output as part of the help.
+--
my_summary :: String
my_summary = program_name ++ "-" ++ (showVersion version)
+
+-- | Help string for the \"access_secret\" option.
+--
+access_secret_help :: String
+access_secret_help = "Your Twitter API access secret"
+
+
+-- | Help string for the \"access_token\" option
+--
+access_token_help :: String
+access_token_help = "Your Twitter API access token"
+
+
+-- | Help string for the \"consumer_key\" option.
+--
consumer_key_help :: String
consumer_key_help = "Your Twitter API consumer key"
+
+-- | Help string for the \"consumer_secret\" option.
+--
consumer_secret_help :: String
consumer_secret_help = "Your Twitter API consumer secret"
-access_token_help :: String
-access_token_help = "Your Twitter API access token"
-
-access_secret_help :: String
-access_secret_help = "Your Twitter API access secret"
-heartbeat_help :: String
-heartbeat_help = "How many seconds to wait between polling"
+-- | A description of the \"daemonize\" option.
+--
+daemonize_help :: String
+daemonize_help = "Run as a daemon, in the background."
-to_address_help :: String
-to_address_help = "Send tweets to ADDRESS"
+-- | Help string for the \"from_address\" option.
+--
from_address_help :: String
from_address_help = "Send tweets from ADDRESS"
-sendmail_path_help :: String
-sendmail_path_help = "Use PATH to send mail"
+-- | Help string for the \"heartbeat\" option.
+--
+heartbeat_help :: String
+heartbeat_help = "How many seconds to wait between polling"
+
+
+-- | Help string for the \"ignore_replies\" option.
+--
ignore_replies_help :: String
ignore_replies_help = "Ignore replies to other tweets"
+
+-- | Help string for the \"ignore_retweets\" option.
+--
ignore_retweets_help :: String
ignore_retweets_help = "Ignore retweets from other users"
+
+-- | A description of the "pidfile" option.
+pidfile_help :: String
+pidfile_help =
+ "Location to create PID file (daemon only)."
+
+
+-- | A description of the "run_as_group" option.
+run_as_group_help :: String
+run_as_group_help =
+ "System group to run as (daemon only)."
+
+
+-- | A description of the "run_as_user" option.
+run_as_user_help :: String
+run_as_user_help =
+ "System user to run under (daemon only)."
+
+
+-- | Help string for the \"to_address\" option.
+--
+to_address_help :: String
+to_address_help = "Send tweets to ADDRESS"
+
+
+
+-- | Help string for the \"sendmail_path\" option.
+--
+sendmail_path_help :: String
+sendmail_path_help = "Use PATH to send mail"
+
+
+-- | Help string for the \"verbose\" option.
+--
verbose_help :: String
verbose_help = "Be verbose about stuff"
+
arg_spec :: OptionalCfg
arg_spec =
OptionalCfg {
- consumer_key =
- def &= typ "KEY"
- &= groupname "Twitter API"
- &= help consumer_key_help,
- consumer_secret =
+ access_secret =
def &= typ "SECRET"
&= groupname "Twitter API"
- &= help consumer_secret_help,
+ &= help access_secret_help,
access_token =
def &= typ "TOKEN"
&= groupname "Twitter API"
&= help access_token_help,
- access_secret =
+ consumer_key =
+ def &= typ "KEY"
+ &= groupname "Twitter API"
+ &= help consumer_key_help,
+
+ consumer_secret =
def &= typ "SECRET"
&= groupname "Twitter API"
- &= help access_secret_help,
+ &= help consumer_secret_help,
+
+
+ daemonize =
+ def &= groupname "Miscellaneous"
+ &= help daemonize_help,
+
+ from_address =
+ def &= typ "ADDRESS"
+ &= groupname "Mail Options"
+ &= help from_address_help,
heartbeat =
def &= groupname "Miscellaneous"
def &= groupname "Miscellaneous"
&= help ignore_retweets_help,
- verbose =
- def &= groupname "Miscellaneous"
- &= help verbose_help,
+ pidfile =
+ def &= typFile
+ &= help pidfile_help,
+
+ run_as_group =
+ def &= typ "GROUP"
+ &= help run_as_group_help,
+
+ run_as_user =
+ def &= typ "USER"
+ &= help run_as_user_help,
sendmail_path =
def &= typ "PATH"
&= groupname "Mail Options"
&= help sendmail_path_help,
- from_address =
- def &= typ "ADDRESS"
- &= groupname "Mail Options"
- &= help from_address_help,
-
to_address =
def &= typ "ADDRESS"
&= groupname "Mail Options"
usernames =
def &= args
- &= typ "USERNAMES" }
+ &= typ "USERNAMES",
+
+ verbose =
+ def &= groupname "Miscellaneous"
+ &= help verbose_help }
&= program program_name
&= summary my_summary
&= helpArg [groupname "Common flags"]
&= versionArg [groupname "Common flags"]
+
show_help :: IO OptionalCfg
show_help = withArgs ["--help"] get_args