htsn 0.0.6 → 0.0.7
raw patch · 4 files changed
+72/−10 lines, 4 filesdep +process
Dependencies added: process
Files
- htsn.cabal +40/−1
- src/Main.hs +13/−9
- test/ShellTests.hs +10/−0
- test/shell/command-line-feed-hosts.test +9/−0
htsn.cabal view
@@ -1,5 +1,5 @@ name: htsn-version: 0.0.6+version: 0.0.7 cabal-version: >= 1.8 author: Michael Orlitzky maintainer: Michael Orlitzky <michael@orlitzky.com>@@ -11,6 +11,7 @@ doc/htsnrc.example doc/man1/htsn.1 doc/init.openrc+ test/shell/*.test test/xml/*.xml synopsis: Parse XML files from The Sports Network feed.@@ -272,6 +273,44 @@ hxt == 9.3.*, MissingH == 1.2.*, network == 2.4.*,+ tasty == 0.7.*,+ tasty-hunit == 0.4.*,+ unix == 2.6.*++ -- It's not entirely clear to me why I have to reproduce all of this.+ ghc-options:+ -Wall+ -fwarn-hi-shadowing+ -fwarn-missing-signatures+ -fwarn-name-shadowing+ -fwarn-orphans+ -fwarn-type-defaults+ -fwarn-tabs+ -fwarn-incomplete-record-updates+ -fwarn-monomorphism-restriction+ -fwarn-unused-do-bind+ -O2+++-- These won't work without shelltestrunner installed in your+-- $PATH. Maybe there is some way to tell Cabal that.+test-suite shelltests+ type: exitcode-stdio-1.0+ hs-source-dirs: src test+ main-is: ShellTests.hs+ build-depends:+ base == 4.*,+ cmdargs >= 0.10.6,+ configurator == 0.2.*,+ directory == 1.2.*,+ filepath == 1.3.*,+ hdaemonize == 0.4.*,+ hslogger == 1.2.*,+ htsn-common == 0.0.1,+ hxt == 9.3.*,+ MissingH == 1.2.*,+ network == 2.4.*,+ process == 1.1.*, tasty == 0.7.*, tasty-hunit == 0.4.*, unix == 2.6.*
src/Main.hs view
@@ -297,15 +297,7 @@ 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)@@ -313,6 +305,18 @@ when (isNothing (OC.username opt_config)) $ do 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
+ test/ShellTests.hs view
@@ -0,0 +1,10 @@+module Main+where++import System.Cmd ( system )+import System.Exit ( exitWith )++main :: IO ()+main = do+ result <- system "shelltest test/shell/*.test"+ exitWith result
+ test/shell/command-line-feed-hosts.test view
@@ -0,0 +1,9 @@+#+# If a feed host is supplied on the command-line, it should override+# the default list. Since htsn attempts to run forever, we sleep for a+# second after starting it and then kill it ($! is its pid).+#+dist/build/htsn/htsn -u foo --password bar localhost & sleep 1; kill $!+>>> /Connecting to localhost./+>>>2 /ERROR: connect: does not exist \(Connection refused\)/+>>>=0