X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FCommandLine.hs;h=45d43abe41dc5082d6edcf3b71267b32c18f4c43;hb=HEAD;hp=65054fe959902fab46f98c5b9112a7ac195d5c62;hpb=d7c6b5499c0969b6e488d9fc583f93bbb4e3d4c7;p=dead%2Fhalcyon.git diff --git a/src/CommandLine.hs b/src/CommandLine.hs index 65054fe..45d43ab 100644 --- a/src/CommandLine.hs +++ b/src/CommandLine.hs @@ -15,80 +15,160 @@ import System.Console.CmdArgs ( program, summary, typ, + typFile, versionArg ) -import System.Environment (withArgs) +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 ( 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" @@ -102,20 +182,23 @@ arg_spec = 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" @@ -123,7 +206,11 @@ arg_spec = usernames = def &= args - &= typ "USERNAMES" } + &= typ "USERNAMES", + + verbose = + def &= groupname "Miscellaneous" + &= help verbose_help } &= program program_name &= summary my_summary @@ -131,6 +218,7 @@ arg_spec = &= helpArg [groupname "Common flags"] &= versionArg [groupname "Common flags"] + show_help :: IO OptionalCfg show_help = withArgs ["--help"] get_args