X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMain.hs;h=0ebfafa67aaadcf06e3148b22f0574967b8b7fd8;hb=e42a9a84c3866b7293abb98735c3e76bd12c4dda;hp=8fce2f51aeac6021820774a58462e7a51b4df87a;hpb=6b71fc1e444cc95acdef91ad814e4f97b01ec52e;p=hath.git diff --git a/src/Main.hs b/src/Main.hs index 8fce2f5..0ebfafa 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -4,7 +4,6 @@ where import Control.Monad (when) import Data.List ((\\), intercalate) import Data.Maybe (catMaybes, isNothing) -import Data.String.Utils (splitWs) import System.Exit (ExitCode( ExitFailure ), exitWith) import System.IO (stderr, hPutStrLn) import Text.Read (readMaybe) @@ -21,8 +20,9 @@ import Cidr ( min_octet2, min_octet3, min_octet4 ) +import qualified Cidr ( normalize ) import CommandLine( - Args( Regexed, Reduced, Duped, Diffed, Listed, barriers ), + Args( Regexed, Reduced, Duped, Diffed, Listed, barriers, normalize ), get_args ) import ExitCodes ( exit_invalid_cidr ) import Octet () @@ -103,7 +103,7 @@ main = do -- This reads stdin. input <- getContents - let cidr_strings = splitWs input + let cidr_strings = words input let cidrs = map readMaybe cidr_strings :: [Maybe Cidr] when (any isNothing cidrs) $ do @@ -127,8 +127,10 @@ main = do let cidrs' = combine_all valid_cidrs let regexes = map (cidr_to_regex (barriers args)) cidrs' putStrLn $ alternate regexes - Reduced{} -> - mapM_ print (combine_all valid_cidrs) + Reduced{} -> do + -- Pre-normalize all CIDRs if the user asked for it. + let nrml_func = if (normalize args) then Cidr.normalize else id + mapM_ print (combine_all (map nrml_func valid_cidrs)) Duped{} -> mapM_ print dupes where