]> gitweb.michael.orlitzky.com - email-validator.git/blobdiff - email-validator.cabal
doc,email-validator: document the new NULLMX handling
[email-validator.git] / email-validator.cabal
index acb9fcaea8e6616408e8b0a41367e2fbe8cd93f3..3e975f393b92cdbfefb234883f2640d4cf97de25 100644 (file)
@@ -1,55 +1,71 @@
+cabal-version:  3.0
 name:           email-validator
 name:           email-validator
-version:        0.0.1
-cabal-version:  >= 1.8
+version:        1.0.1
 author:         Michael Orlitzky
 maintainer:    Michael Orlitzky <michael@orlitzky.com>
 author:         Michael Orlitzky
 maintainer:    Michael Orlitzky <michael@orlitzky.com>
+homepage:       https://michael.orlitzky.com/code/email-validator.xhtml
+bug-reports:    mailto:michael@orlitzky.com
 category:       Utils
 category:       Utils
-license:        GPL-3
+license:        AGPL-3.0-or-later
 license-file:   doc/LICENSE
 build-type:     Simple
 extra-source-files:
 license-file:   doc/LICENSE
 build-type:     Simple
 extra-source-files:
+  doc/COPYING
   doc/man1/email-validator.1
 synopsis:
   Perform basic syntax and deliverability checks on email addresses.
 description:
   Validate an email address using three techniques:
   doc/man1/email-validator.1
 synopsis:
   Perform basic syntax and deliverability checks on email addresses.
 description:
   Validate an email address using three techniques:
-  .
+
     * Ensuring that the length of local and domain parts is within the
       RFC-specified limits.
     * Ensuring that the length of local and domain parts is within the
       RFC-specified limits.
-  .
+
     * A syntax check using a regular expression, or the full RFC 5322
       grammar (see the @--rfc5322@ option).
     * A syntax check using a regular expression, or the full RFC 5322
       grammar (see the @--rfc5322@ option).
-  .
-    * Confirmation of the existence of an @MX@ record for the domain part of
-      the address. This is not required; in fact many domains accept mail
-      via an @A@ record for e.g. example.com which is used in lieu of an @MX@
-      record. This behavior can be controlled via the @--accept-a@ flag.
-  .
+
+    * Confirmation of the existence of an @MX@ record for the domain
+      part of the address. NULLMX (RFC7505) records are not
+      accepted. This is not required; in fact many domains accept mail
+      via an @A@ record for (say) example.com which is used in lieu of
+      an @MX@ record. This behavior can be controlled via the
+      @--accept-a@ flag, but note that @--accept-a@ is ignored for
+      domains that have NULLMX records.
+
   These checks are performed in parallel using the number of available
   threads. To increase the number of threads, you can pass the
   appropriate flag to the GHC runtime.
   These checks are performed in parallel using the number of available
   threads. To increase the number of threads, you can pass the
   appropriate flag to the GHC runtime.
-  .
+
   This will set the number of threads to 25:
   This will set the number of threads to 25:
-  .
+
   @
   @
-  $ email-validator -i addresses.csv +RTS -N25
+  $ email-validator +RTS -N25 < addresses.csv
   @
 
   @
 
+  /Input/
+
+  The @input@ (via stdin) should be a list of email addresses,
+  one per line. Empty lines will be ignored.
+
+  /Output/
+
+  Valid email addresses will be written to stdout, one per line.
+
 
 executable email-validator
   build-depends:
 
 executable email-validator
   build-depends:
-    base                        == 4.*,
-    bytestring                  == 0.10.*,
-    cmdargs                     == 0.10.*,
-    directory                   == 1.2.*,
-    dns                         == 0.3.*,
-    email-validate              == 1.*,
-    HUnit                       == 1.2.*,
-    parallel-io                 == 0.3.*,
+    base                        >= 4.15 && < 5,
+    bytestring                  >= 0.10,
+    cmdargs                     >= 0.10,
+    dns                         >= 2,
+    email-validate              >= 2,
+    HUnit                       >= 1.2,
+    parallel-io                 >= 0.3,
     pcre-light                  >= 0.4,
     pcre-light                  >= 0.4,
-    test-framework              == 0.8.*,
-    test-framework-hunit        == 0.3.*,
-    utf8-string                 == 0.3.*
+    tasty                       >= 0.8,
+    tasty-hunit                 >= 0.8
+
+  default-language:
+    Haskell2010
 
   main-is:
     Main.hs
 
   main-is:
     Main.hs
@@ -60,68 +76,43 @@ executable email-validator
   other-modules:
     CommandLine
     EmailAddress
   other-modules:
     CommandLine
     EmailAddress
-    ExitCodes
-
-  ghc-options:
-    -Wall
-    -fwarn-hi-shadowing
-    -fwarn-missing-signatures
-    -fwarn-name-shadowing
-    -fwarn-orphans
-    -fwarn-type-defaults
-    -fwarn-tabs
-    -fwarn-incomplete-record-updates
-    -fwarn-monomorphism-restriction
-    -fwarn-unused-do-bind
-    -rtsopts
-    -threaded
-    -optc-O3
-    -optc-march=native
-    -O2
-
-  ghc-prof-options:
-    -prof
-    -auto-all
-    -caf-all
+    Paths_email_validator
+
+  autogen-modules:
+    Paths_email_validator
 
 
 test-suite testsuite
   type: exitcode-stdio-1.0
   hs-source-dirs: src test
 
 
 test-suite testsuite
   type: exitcode-stdio-1.0
   hs-source-dirs: src test
+  default-language: Haskell2010
   main-is: TestSuite.hs
   main-is: TestSuite.hs
+
   build-depends:
   build-depends:
-    base                        == 4.*,
-    bytestring                  == 0.10.*,
-    cmdargs                     == 0.10.*,
-    directory                   == 1.2.*,
-    dns                         == 0.3.*,
-    email-validate              == 1.*,
-    HUnit                       == 1.2.*,
-    parallel-io                 == 0.3.*,
+    base                        >= 4.15 && < 5,
+    bytestring                  >= 0.10,
+    email-validate              >= 2,
+    HUnit                       >= 1.2,
     pcre-light                  >= 0.4,
     pcre-light                  >= 0.4,
-    test-framework              == 0.8.*,
-    test-framework-hunit        == 0.3.*,
-    utf8-string                 == 0.3.*
-
-  -- It's not entirely clear to me why I have to reproduce all of this.
-  ghc-options:
-    -Wall
-    -fwarn-hi-shadowing
-    -fwarn-missing-signatures
-    -fwarn-name-shadowing
-    -fwarn-orphans
-    -fwarn-type-defaults
-    -fwarn-tabs
-    -fwarn-incomplete-record-updates
-    -fwarn-monomorphism-restriction
-    -fwarn-unused-do-bind
-    -rtsopts
-    -threaded
-    -optc-O3
-    -optc-march=native
-    -O2
+    tasty                       >= 0.8,
+    tasty-hunit                 >= 0.8
+
+  other-modules:
+    EmailAddress
+
+
+test-suite doctests
+  type: exitcode-stdio-1.0
+  hs-source-dirs: test
+  default-language: Haskell2010
+  main-is: Doctests.hs
+  build-depends:
+    base      >= 4.15 && < 5,
+    -- Additional test dependencies.
+    doctest   >= 0.9
+
 
 source-repository head
   type: git
 
 source-repository head
   type: git
-  location: http://michael.orlitzky.com/git/email-validator.git
+  location: https://gitweb.michael.orlitzky.com/email-validator.git
   branch: master
   branch: master