Add a doctest suite.
[haeredes.git] / haeredes.cabal
1 name: haeredes
2 version: 0.0
3 cabal-version: >= 1.8
4 author: Michael Orlitzky
5 maintainer: Michael Orlitzky <michael@orlitzky.com>
6 license: GPL-3
7 license-file: doc/LICENSE
8 homepage: http://michael.orlitzky.com/code/haeredes.php
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 Check orlitzky.com against the expected name servers, using
48 d.gtld-servers.net:
49 .
50 @
51 $ haeredes --server 199.7.91.13 dns1.viabit.com dns2.viabit.com \
52 &#x20; <<< \"orlitzky.com\"
53 @
54 .
55 Check orlitzky.com against only one of the expected two nameservers:
56 .
57 @
58 $ haeredes dns1.viabit.com <<< \"orlitzky.com\"
59 Domain \"orlitzky.com.\" delegates somewhere else: \"dns2.viabit.com.\"
60 @
61 .
62 Check a nonexistent domain (we provide no delegates, since we
63 know .invalid will not be delegated):
64 .
65 @
66 $ haeredes <<< \"example.invalid\"
67 Domain \"example.invalid.\" not delegated.
68 @
69
70 executable haeredes
71 build-depends:
72 base == 4.*,
73 bytestring == 0.10.*,
74 cmdargs == 0.10.*,
75 dns >= 0.3.7,
76 iproute == 1.2.*,
77 MissingH == 1.2.*,
78 parallel-io == 0.3.*,
79 -- Test deps
80 HUnit == 1.2.*,
81 QuickCheck == 2.*,
82 test-framework == 0.8.*,
83 test-framework-hunit == 0.3.*,
84 test-framework-quickcheck2 == 0.3.*
85
86 main-is:
87 Main.hs
88
89 hs-source-dirs:
90 src/
91
92 other-modules:
93 CommandLine
94 DNS
95 ExitCodes
96
97 ghc-options:
98 -Wall
99 -fwarn-hi-shadowing
100 -fwarn-missing-signatures
101 -fwarn-name-shadowing
102 -fwarn-orphans
103 -fwarn-type-defaults
104 -fwarn-tabs
105 -fwarn-incomplete-record-updates
106 -fwarn-monomorphism-restriction
107 -fwarn-unused-do-bind
108 -rtsopts
109 -threaded
110 -optc-O3
111 -optc-march=native
112
113 test-suite testsuite
114 type: exitcode-stdio-1.0
115 hs-source-dirs: src test
116 main-is: TestSuite.hs
117 build-depends:
118 base == 4.*,
119 bytestring == 0.10.*,
120 cmdargs == 0.10.*,
121 dns >= 0.3.7,
122 iproute == 1.2.*,
123 MissingH == 1.2.*,
124 parallel-io == 0.3.*,
125 -- Test deps
126 HUnit == 1.2.*,
127 QuickCheck == 2.*,
128 test-framework == 0.8.*,
129 test-framework-hunit == 0.3.*,
130 test-framework-quickcheck2 == 0.3.*
131
132 -- It's not entirely clear to me why I have to reproduce all of this.
133 ghc-options:
134 -Wall
135 -fwarn-hi-shadowing
136 -fwarn-missing-signatures
137 -fwarn-name-shadowing
138 -fwarn-orphans
139 -fwarn-type-defaults
140 -fwarn-tabs
141 -fwarn-incomplete-record-updates
142 -fwarn-monomorphism-restriction
143 -fwarn-unused-do-bind
144 -rtsopts
145 -threaded
146 -optc-O3
147 -optc-march=native
148
149 test-suite doctests
150 type: exitcode-stdio-1.0
151 hs-source-dirs: test
152 main-is: Doctests.hs
153 build-depends:
154 base == 4.*,
155 -- Additional test dependencies.
156 doctest == 0.9.*,
157 filemanip == 0.3.6.*
158
159 -- It's not entirely clear to me why I have to reproduce all of this.
160 ghc-options:
161 -Wall
162 -fwarn-hi-shadowing
163 -fwarn-missing-signatures
164 -fwarn-name-shadowing
165 -fwarn-orphans
166 -fwarn-type-defaults
167 -fwarn-tabs
168 -fwarn-incomplete-record-updates
169 -fwarn-monomorphism-restriction
170 -fwarn-unused-do-bind
171 -rtsopts
172 -threaded
173 -optc-O3
174 -optc-march=native
175
176 source-repository head
177 type: git
178 location: http://michael.orlitzky.com/git/haeredes.git
179 branch: master