1 {-# LANGUAGE DeriveDataTypeable #-}
9 import System.Console.CmdArgs
11 -- Get the version from Cabal.
12 import Paths_haeredes (version)
13 import Data.Version (showVersion)
15 ns_description :: String
17 "Confirm delegation of NS records. " ++
18 "This is the default mode."
20 mx_description :: String
21 mx_description = "Confirm delegation of MX records."
23 program_name :: String
24 program_name = "haeredes"
27 my_summary = program_name ++ "-" ++ (showVersion version)
31 "IP address of server to query " ++
32 "(will use resolv.conf if not specified)"
35 NS { server :: Maybe String, delegates :: [String] } |
36 MX { server :: Maybe String, delegates :: [String] }
37 deriving (Data, Show, Typeable)
41 modes [ns &= auto, mx]
42 &= program program_name
47 groupname "Common flags"]
48 &= versionArg [explicit,
51 groupname "Common flags"]
53 -- The repetition here is necessary, some Template Haskell magic
58 &= groupname "Common flags"
66 &= details [ns_description]
71 &= groupname "Common flags"
79 &= details [mx_description]
82 get_args = cmdArgs arg_spec