let cfg = (def :: Configuration) `merge_optional` opt_config
init_logging (log_level cfg) (log_file cfg) (syslog cfg)
- -- Check the optional config for missing required options. This is
- -- necessary because if the user specifies an empty list of
- -- hostnames in e.g. the config file, we want to bail rather than
- -- fall back on the default list (which was merged from a default
- -- Configuration above).
- when (null $ get_feed_hosts (OC.feed_hosts opt_config)) $ do
- report_error "No feed hosts supplied."
- exitWith (ExitFailure exit_no_feed_hosts)
-
+ -- Check the optional config for missing required options.
when (isNothing (OC.password opt_config)) $ do
report_error "No password supplied."
exitWith (ExitFailure exit_no_password)
report_error "No username supplied."
exitWith (ExitFailure exit_no_username)
+ -- This should be impossible. We had a choice to make: since the
+ -- command-line feed_hosts are usually not supplied, we don't want
+ -- to take the empty list supplied on the command-line and use
+ -- that. But that means that we need to do the same thing if the
+ -- user supplies an empty list in the config file. That "same thing"
+ -- is to use the default list. So, this should never be empty,
+ -- because if the optional config has no feed hosts, we use the
+ -- default list.
+ when (null $ get_feed_hosts (feed_hosts cfg)) $ do
+ report_error "No feed hosts supplied."
+ exitWith (ExitFailure exit_no_feed_hosts)
+
when (daemonize cfg) $ do
-- Old PID files can be left around after an unclean shutdown. We
-- only care if we're running as a daemon.