Add a "new" exit code (shift them all, really) for a host being blacklisted.
authorMichael Orlitzky <michael@orlitzky.com>
Mon, 13 Jul 2015 22:54:30 +0000 (18:54 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 13 Jul 2015 22:54:30 +0000 (18:54 -0400)
harbl-cli/src/ExitCodes.hs
harbl-cli/src/Main.hs

index 472ea152d4a2293969322c85ca827026d2b944b6..8459df7fd0eae70226b340c63df76cc70aca9b5f 100644 (file)
@@ -2,31 +2,38 @@
 --   ExitSuccess).
 --
 module ExitCodes (
+  exit_host_blacklisted,
   exit_no_hosts,
   exit_no_lists,
   exit_unparseable_host,
   exit_unparseable_list )
 where
 
+-- | The most common error: some host exceeded the blacklist
+--   threshold.
+exit_host_blacklisted :: Int
+exit_host_blacklisted = 1
+
+
 -- | No hosts were given on the command-line or in a config file.
 --
 exit_no_hosts :: Int
-exit_no_hosts = 1
+exit_no_hosts = 2
 
 
 -- | No lists were given on the command-line or in a config file.
 --
 exit_no_lists :: Int
-exit_no_lists = 2
+exit_no_lists = 3
 
 
 -- | The user gave us an RBL we couldn't parse.
 --
 exit_unparseable_list :: Int
-exit_unparseable_list = 3
+exit_unparseable_list = 4
 
 
 -- | The user gave us a host we couldn't parse.
 --
 exit_unparseable_host :: Int
-exit_unparseable_host = 4
+exit_unparseable_host = 5
index d2ac8d294ed7c0751f6d30df678e31d6759dff8f..7b28af57cacfd59327cf7ab7471f32a8eb5a3bc3 100644 (file)
@@ -1,3 +1,5 @@
+{-# LANGUAGE DoAndIfThenElse #-}
+
 module Main ( main )
 where
 
@@ -5,12 +7,13 @@ import Control.Monad ( liftM, when )
 import Data.Monoid ( (<>) )
 import Text.Parsec ( ParseError, parse )
 import System.Console.CmdArgs ( def )
-import System.Exit ( exitWith, ExitCode (ExitFailure) )
+import System.Exit ( exitSuccess, exitWith, ExitCode (ExitFailure) )
 import System.IO ( hPutStrLn, stderr )
 
 import CommandLine ( get_args )
 import Configuration ( Configuration(..), merge_optional )
 import ExitCodes (
+  exit_host_blacklisted,
   exit_no_hosts,
   exit_no_lists,
   exit_unparseable_host,
@@ -80,3 +83,6 @@ main = do
         Right hs -> do
           listings <- concatMapM (lookup_rbl ls) hs
           mapM_ (putStrLn . listing_message) listings
+          if null listings
+          then exitSuccess
+          else exitWith (ExitFailure exit_host_blacklisted)