X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhtsn.git;a=blobdiff_plain;f=src%2FConfiguration.hs;h=68751d6015784242e7ecdb89fcf2ee568ef383da;hp=a90af38435cbcd3df1fefd767f401203a4bfa169;hb=f6cb0ba712e06e52d080b86e9eba6c3585a7514b;hpb=4e53c500d87df2dbe1413d47562786fe4cc88f2a diff --git a/src/Configuration.hs b/src/Configuration.hs index a90af38..68751d6 100644 --- a/src/Configuration.hs +++ b/src/Configuration.hs @@ -17,11 +17,15 @@ import TSN.FeedHosts (FeedHosts(..)) data Configuration = Configuration { + daemonize :: Bool, feed_hosts :: FeedHosts, log_file :: Maybe FilePath, log_level :: Priority, - password :: String, output_directory :: FilePath, + password :: String, + pidfile :: FilePath, + run_as_group :: Maybe String, + run_as_user :: Maybe String, syslog :: Bool, username :: String } deriving (Show) @@ -29,7 +33,18 @@ data Configuration = -- | A Configuration with all of its fields set to their default -- values. instance Default Configuration where - def = Configuration def def INFO def "." def def + def = Configuration { + daemonize = def, + feed_hosts = def, + log_file = def, + log_level = INFO, + output_directory = ".", + password = def, + pidfile = "/run/htsn.pid", + run_as_group = def, + run_as_user = def, + syslog = def, + username = def } -- | Merge a Configuration with an OptionalConfiguration. This is more @@ -40,11 +55,15 @@ merge_optional :: Configuration -> Configuration merge_optional cfg opt_cfg = Configuration + (merge (daemonize cfg) (OC.daemonize opt_cfg)) all_feed_hosts (OC.merge_maybes (log_file cfg) (OC.log_file opt_cfg)) (merge (log_level cfg) (OC.log_level opt_cfg)) - (merge (password cfg) (OC.password opt_cfg)) (merge (output_directory cfg) (OC.output_directory opt_cfg)) + (merge (password cfg) (OC.password opt_cfg)) + (merge (pidfile cfg) (OC.pidfile opt_cfg)) + (OC.merge_maybes (run_as_group cfg) (OC.run_as_group opt_cfg)) + (OC.merge_maybes (run_as_user cfg) (OC.run_as_user opt_cfg)) (merge (syslog cfg) (OC.syslog opt_cfg)) (merge (username cfg) (OC.username opt_cfg)) where