test: add a shelltestrunner test suite for the man page examples.
[haeredes.git] / haeredes.cabal
1 name: haeredes
2 version: 0.4.5
3 cabal-version: >= 1.8
4 author: Michael Orlitzky
5 maintainer: Michael Orlitzky <michael@orlitzky.com>
6 license: AGPL-3
7 license-file: doc/LICENSE
8 homepage: http://michael.orlitzky.com/code/haeredes.xhtml
9 bug-reports: mailto:michael@orlitzky.com
10 category: DNS, Utils
11 build-type: Simple
12 extra-source-files:
13 doc/man1/haeredes.1
14 synopsis:
15 Confirm delegation of NS and MX records.
16 description:
17 Haeredes is primarily useful for ISP network administrators.
18 Customers will occasionally decide to switch hosts without alerting
19 the current host; this can cause two problems:
20 .
21 * With NS records, the previous host (at the very least) keeps
22 hosting a DNS zone that does nothing. If that host uses their
23 authoritative nameserver as a caching lookup server as well, it
24 may return incorrect results to queries about the domain in
25 question.
26 .
27 * For MX records, the situation is slightly worse. Most mail servers
28 will immediately accept mail for which the server thinks it is the
29 ultimate destination. If a mail server is configured as the
30 destination for a domain, but it is not the MX for that domain,
31 then mail submitted to that server may possibly be lost. It is
32 therefore important to remove domains from the old mail host as
33 soon as the MX record is changed.
34 .
35 Haeredes can alert administrators when NS/MX records are changed. More
36 detail can be found in the man page.
37 .
38 /Examples/:
39 .
40 Make sure example.com has the expected name servers,
41 [ab].iana-servers.net:
42 .
43 @
44 $ haeredes a.iana-servers.net b.iana-servers.net <<< \"example.com\"
45 @
46 .
47 If you use --no-append-root and your nameservers are rooted, you
48 must remember to supply the trailing dot yourself. Otherwise, you'll
49 get false positives.
50 .
51 @
52 $ haeredes --no-append-root \
53 &#x20; a.iana-servers.net b.iana-servers.net \
54 &#x20; <<< \"example.com\"
55 Domain \"example.com\" delegates somewhere else: \"b.iana-servers.net.\" \"a.iana-servers.net.\"
56 @
57 .
58 Check orlitzky.com against the expected name servers, using
59 d.gtld-servers.net:
60 .
61 @
62 $ haeredes --server 199.7.91.13 dns1.viabit.com dns2.viabit.com \
63 &#x20; <<< \"orlitzky.com\"
64 @
65 .
66 Check orlitzky.com against only one of the expected two nameservers:
67 .
68 @
69 $ haeredes dns1.viabit.com <<< \"orlitzky.com\"
70 Domain \"orlitzky.com.\" delegates somewhere else: \"dns2.viabit.com.\"
71 @
72 .
73 Check a nonexistent domain (we provide no delegates, since we
74 know .bar will not be delegated):
75 .
76 @
77 $ haeredes <<< \"foo.bar\"
78 Domain \"foo.bar.\" not delegated.
79 @
80
81 executable haeredes
82 build-depends:
83 base == 4.*,
84 bytestring >= 0.10,
85 cmdargs >= 0.10,
86 dns >= 1.4,
87 iproute >= 1.2,
88 parallel-io >= 0.3
89
90 main-is:
91 Main.hs
92
93 hs-source-dirs:
94 src/
95
96 other-modules:
97 CommandLine
98 DNS
99 ExitCodes
100 -- WARNING: the Paths_haeredes module is automatically generated by
101 -- Cabal itself. We don't want it included in the release tarballs,
102 -- since we typically want the paths that the user has configured.
103 -- Nevertheless, Cabal will complain if we don't include it here.
104 Paths_haeredes
105 Timeout
106
107 ghc-options:
108 -Weverything
109 -Wno-implicit-prelude
110 -Wno-safe
111 -Wno-unsafe
112 -Wno-all-missed-specialisations
113 -rtsopts
114 -threaded
115 -optc-O3
116 -optc-march=native
117
118
119 test-suite doctests
120 type: exitcode-stdio-1.0
121 hs-source-dirs: test
122 main-is: Doctests.hs
123 build-depends:
124 base == 4.*,
125 -- Additional test dependencies.
126 doctest >= 0.9,
127 filemanip >= 0.3.6
128
129 -- It's not entirely clear to me why I have to reproduce all of this.
130 ghc-options:
131 -Weverything
132 -Wno-implicit-prelude
133 -Wno-safe
134 -Wno-unsafe
135 -Wno-all-missed-specialisations
136 -rtsopts
137 -threaded
138 -optc-O3
139 -optc-march=native
140
141
142 -- These won't work without shelltestrunner installed in your
143 -- $PATH. Maybe there is some way to tell Cabal that.
144 test-suite shelltests
145 type: exitcode-stdio-1.0
146 hs-source-dirs: test
147 main-is: ShellTests.hs
148
149 build-depends:
150 base == 4.*,
151 bytestring >= 0.10,
152 cmdargs >= 0.10,
153 dns >= 1.4,
154 iproute >= 1.2,
155 parallel-io >= 0.3,
156 process >= 1.1
157
158 -- It's not entirely clear to me why I have to reproduce all of this.
159 ghc-options:
160 -Weverything
161 -Wno-implicit-prelude
162 -Wno-safe
163 -Wno-unsafe
164 -Wno-all-missed-specialisations
165 -rtsopts
166 -threaded
167 -optc-O3
168 -optc-march=native
169
170
171 source-repository head
172 type: git
173 location: http://gitweb.michael.orlitzky.com/haeredes.git
174 branch: master