]> gitweb.michael.orlitzky.com - dead/htsn.git/blobdiff - src/CommandLine.hs
Bump to v0.1.1 and allow >= network-2.6.
[dead/htsn.git] / src / CommandLine.hs
index c96fb6b568018f4eeb3462e4e8f42ab0552d8e54..f2ee1b26585a3bbe6f7a42fdd026514ce9b7d22f 100644 (file)
@@ -21,6 +21,7 @@ import System.Console.CmdArgs (
 import Paths_htsn (version)
 import Data.Version (showVersion)
 
+import FeedHosts ( FeedHosts(..) )
 import OptionalConfiguration ( OptionalConfiguration(..) )
 
 -- | The description of the program, displayed as part of the help.
@@ -36,24 +37,45 @@ my_summary :: String
 my_summary = program_name ++ "-" ++ (showVersion version)
 
 
+-- | 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."
+
 -- | A description of the "password" option.
 password_help :: String
 password_help =
-  "Password to use when connecting to the feed"
+  "Password to use when connecting to the feed."
 
--- | 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"
+-- | 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
@@ -63,7 +85,7 @@ syslog_help =
 -- | 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
@@ -71,16 +93,22 @@ username_help =
 arg_spec :: OptionalConfiguration
 arg_spec =
   OptionalConfiguration {
+    daemonize        = def &= typ "BOOL"      &= help daemonize_help,
+
     -- 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.
-    feed_hosts       = def &= typ "HOSTNAMES" &= args,
-    log_file         = def &= typFile        &= help log_file_help,
-    log_level        = def &= typ "LEVEL"    &= help log_level_help,
-    password         = def &= typ "PASSWORD" &= help password_help,
-    output_directory = def &= typDir         &= help output_directory_help,
-    syslog           = def &= typ "BOOL"     &= help syslog_help,
-    username         = def &= typ "USERNAME" &= help username_help }
+    feed_hosts       = FeedHosts [] &= 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]