1 {-# LANGUAGE DeriveDataTypeable #-}
9 import System.Console.CmdArgs (
29 -- Get the version from Cabal.
30 import Paths_haeredes (version)
31 import Data.Version (showVersion)
33 ns_description :: String
35 "Confirm delegation of NS records. " ++
36 "This is the default mode."
38 mx_description :: String
39 mx_description = "Confirm delegation of MX records."
41 program_name :: String
42 program_name = "haeredes"
45 my_summary = program_name ++ "-" ++ (showVersion version)
49 "IP address of server to query " ++
50 "(will use resolv.conf if not specified)"
53 NS { server :: Maybe String, delegates :: [String] } |
54 MX { server :: Maybe String, delegates :: [String] }
55 deriving (Data, Show, Typeable)
59 modes [ns &= auto, mx]
60 &= program program_name
65 groupname "Common flags"]
66 &= versionArg [explicit,
69 groupname "Common flags"]
71 -- The repetition here is necessary, some Template Haskell magic
76 &= groupname "Common flags"
84 &= details [ns_description]
89 &= groupname "Common flags"
97 &= details [mx_description]
100 get_args = cmdArgs arg_spec