import System.Console.CmdArgs (
(&=),
+ args,
cmdArgs,
def,
details,
program,
summary,
typ,
+ typFile,
typDir )
-- This let's us get the version from Cabal.
import Paths_htsn (version)
import Data.Version (showVersion)
-import OptionalConfiguration (OptionalConfiguration(..))
-
+import OptionalConfiguration ( OptionalConfiguration(..) )
-- | The description of the program, displayed as part of the help.
description :: String
-description = "Parse XML files from The Sports Network."
+description = "Parse XML files from The Sports Network feed."
-- | The name of this program.
program_name :: String
my_summary = program_name ++ "-" ++ (showVersion version)
--- | A description of the "password" option.
-password_help :: String
-password_help =
- "Password to use when connecting to the feed"
+-- | A description of the "daemonize" option.
+daemonize_help :: String
+daemonize_help =
+ "Run as a daemon, in the background."
+
+-- | A description of the "log_file" option.
+log_file_help :: String
+log_file_help =
+ "Log to the given file."
+
+-- | A description of the "log_level" option.
+log_level_help :: String
+log_level_help =
+ "How verbose should the logs be? One of INFO, WARNING, ERROR."
-- | A description of the "output_directory" option.
output_directory_help :: String
output_directory_help =
- "Directory in which to output the XML files; must be writable"
+ "Directory in which to output the XML files; must be writable."
+
+-- | A description of the "password" option.
+password_help :: String
+password_help =
+ "Password to use when connecting to the feed."
+
+-- | 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)."
+
+-- | A description of the "syslog" option.
+syslog_help :: String
+syslog_help =
+ "Enable logging to syslog."
-- | A description of the "username" option.
username_help :: String
username_help =
- "Username to use when connecting to the feed"
+ "Username to use when connecting to the feed."
-- | A data structure representing the possible command-line
-- options. The CmdArgs library is doing heavy magic beneath the
arg_spec :: OptionalConfiguration
arg_spec =
OptionalConfiguration {
- password = def &= typ "PASSWORD" &= help password_help,
- output_directory = def &= typDir &= help output_directory_help,
- username = def &= typ "USERNAME" &= help username_help,
- feed_hosts = def &= typ "HOSTNAMES" }
+ -- Use an empty list for feed_hosts since cmdargs will appends to
+ -- the default when the user supplies feed hosts. If he specifies
+ -- any, those are all we should use.
+ daemonize = def &= typ "BOOL" &= help daemonize_help,
+ feed_hosts = def &= typ "HOSTNAMES" &= args,
+ log_file = def &= typFile &= help log_file_help,
+ log_level = def &= typ "LEVEL" &= help log_level_help,
+ output_directory = def &= typDir &= help output_directory_help,
+ password = def &= typ "PASSWORD" &= help password_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,
+ syslog = def &= typ "BOOL" &= help syslog_help,
+ username = def &= typ "USERNAME" &= help username_help }
&= program program_name
&= summary my_summary
&= details [description]