X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2Fhath.hs;h=7b406a8ce9f3332a182d9ff087a9b8ec9011d19d;hb=95b54c5699d04db1f311e5a204600c5859361064;hp=ecdb56628be3271613af1bb36483229558e17318;hpb=70d32c85d421c330022bf8f59b15fd51955a53c8;p=hath.git diff --git a/src/hath.hs b/src/hath.hs index ecdb566..7b406a8 100644 --- a/src/hath.hs +++ b/src/hath.hs @@ -199,14 +199,22 @@ numeric_range x y = upper = maximum [x,y] -main :: IO () -main = do - line <- getLine - - if (is_valid_cidr line) +-- Take a CIDR String, and exitFailure if it's invalid. +validate_or_die :: String -> IO () +validate_or_die cidr = do + if (is_valid_cidr cidr) then do - putStrLn (cidr_to_regex line) + return () else do putStrLn "Error: not valid CIDR notation." exitFailure + +main :: IO () +main = do + input <- getContents + let cidrs = lines input + mapM validate_or_die cidrs + let regexes = map cidr_to_regex cidrs + putStrLn $ alternate regexes +