X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMain.hs;h=f567400c1ac4080905b9a31700051bf91cb81d82;hb=cca5aba75c313151878a98344c289827c94151e7;hp=d8c760080df39c9cf2d0a29021b2271ea970adb4;hpb=942b8ef3bc5830ca0defa62342d55550aea59934;p=hath.git diff --git a/src/Main.hs b/src/Main.hs index d8c7600..f567400 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -1,3 +1,6 @@ +module Main +where + import Control.Concurrent.ParallelIO.Global ( parallel, stopGlobalPool ) @@ -8,30 +11,30 @@ import Data.Maybe (catMaybes, isNothing) import Data.String.Utils (splitWs) import System.Exit (ExitCode(..), exitSuccess, exitWith) import System.IO (stderr, hPutStrLn) - -import Cidr (Cidr(..), - cidr_from_string, - combine_all, - enumerate, - max_octet1, - max_octet2, - max_octet3, - max_octet4, - min_octet1, - min_octet2, - min_octet3, - min_octet4 ) - -import CommandLine (help_set, - help_text, - input_function, - Mode(..), - parse_errors, - parse_mode) - +import Text.Read (readMaybe) + +import Cidr ( + Cidr(..), + combine_all, + enumerate, + max_octet1, + max_octet2, + max_octet3, + max_octet4, + min_octet1, + min_octet2, + min_octet3, + min_octet4 ) +import CommandLine ( + help_set, + help_text, + input_function, + Mode(..), + parse_errors, + parse_mode ) import DNS (Domain, lookup_ptrs) -import ExitCodes -import Octet +import ExitCodes ( exit_args_parse_failed, exit_invalid_cidr ) +import Octet () -- | A regular expression that matches a non-address character. @@ -63,14 +66,14 @@ cidr_to_regex cidr = range2 = numeric_range min2 max2 range3 = numeric_range min3 max3 range4 = numeric_range min4 max4 - min1 = octet_to_int (min_octet1 cidr) - min2 = octet_to_int (min_octet2 cidr) - min3 = octet_to_int (min_octet3 cidr) - min4 = octet_to_int (min_octet4 cidr) - max1 = octet_to_int (max_octet1 cidr) - max2 = octet_to_int (max_octet2 cidr) - max3 = octet_to_int (max_octet3 cidr) - max4 = octet_to_int (max_octet4 cidr) + min1 = fromEnum (min_octet1 cidr) + min2 = fromEnum (min_octet2 cidr) + min3 = fromEnum (min_octet3 cidr) + min4 = fromEnum (min_octet4 cidr) + max1 = fromEnum (max_octet1 cidr) + max2 = fromEnum (max_octet2 cidr) + max3 = fromEnum (max_octet3 cidr) + max4 = fromEnum (max_octet4 cidr) @@ -112,7 +115,7 @@ main = do input <- inputfunc let cidr_strings = splitWs input - let cidrs = map cidr_from_string cidr_strings + let cidrs = map readMaybe cidr_strings when (any isNothing cidrs) $ do putStrLn "Error: not valid CIDR notation."