X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMain.hs;h=085e30e1ba62aef6c53364e5b6dae8a67994124f;hb=HEAD;hp=0ebfafa67aaadcf06e3148b22f0574967b8b7fd8;hpb=e42a9a84c3866b7293abb98735c3e76bd12c4dda;p=hath.git diff --git a/src/Main.hs b/src/Main.hs index 0ebfafa..085e30e 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -1,8 +1,9 @@ -module Main +module Main (main) where import Control.Monad (when) import Data.List ((\\), intercalate) +import qualified Data.List as List (sort) import Data.Maybe (catMaybes, isNothing) import System.Exit (ExitCode( ExitFailure ), exitWith) import System.IO (stderr, hPutStrLn) @@ -22,7 +23,7 @@ import Cidr ( min_octet4 ) import qualified Cidr ( normalize ) import CommandLine( - Args( Regexed, Reduced, Duped, Diffed, Listed, barriers, normalize ), + Args( Regexed, Reduced, Duped, Diffed, Listed, barriers, normalize, sort ), get_args ) import ExitCodes ( exit_invalid_cidr ) import Octet () @@ -130,7 +131,8 @@ main = do 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)) + let sort_func = if (sort args) then List.sort else id :: [Cidr] -> [Cidr] + mapM_ (print . nrml_func) (sort_func $ combine_all valid_cidrs) Duped{} -> mapM_ print dupes where