packages feed

assumpta-core-0.1.0.2: assumpta-core.cabal

cabal-version: 1.12


name:           assumpta-core
version:        0.1.0.2
synopsis:       Core functionality for an SMTP client
description:    A library for constructing SMTP clients, which provides the
                core functionality for
                <https://hackage.haskell.org/package/assumpta assumpta>. It
                provides a monad transformer and an mtl-style class for sending
                SMTP commands (including `STARTTLS`) to a server and checking
                for expected responses, over some abstract connection type.
                .
                It does not provide a concrete implementation
                which can actually be used to communicate over
                a network - for that, see the
                <https://hackage.haskell.org/package/assumpta assumpta>
                package.
                .
                For further details, please see the README on GitHub at
                <https://github.com/phlummox/assumpta-core#readme>.
category:       Network
homepage:       https://github.com/phlummox/assumpta-core#readme
bug-reports:    https://github.com/phlummox/assumpta-core/issues
author:         phlummox
maintainer:     phlummox2@gmail.com
copyright:      2020 phlummox
license:        BSD2
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    ChangeLog.md
    CONTRIBUTE.md
    DEVELOPMENT.md
    TODO.md
    examples/simple-client-session-mock-bs.hs
    scripts/stack-test.sh
    stack-lts-12.26.yaml

source-repository head
  type: git
  location: https://github.com/phlummox/assumpta-core

-- This enables (or disables) tests that rely on
-- "stack": the doctests and example compilation
-- test.
-- You can enable them from stack using
-- `--flag assumpta-core:stack-based-tests`
flag stack-based-tests
  description: enable tests requiring stack
  manual: True
  default: False

flag warnmore
  description: Enable plenty of ghc warning flags
  manual: True
  default: True

library
  exposed-modules:
      Network.Mail.Assumpta.Auth
      Network.Mail.Assumpta.Instances
      Network.Mail.Assumpta.Mock
      Network.Mail.Assumpta.MonadSmtp
      Network.Mail.Assumpta.Trans.Smtp
      Network.Mail.Assumpta.ParseResponse
      Network.Mail.Assumpta.Types
      Network.Mail.Assumpta.Connection
  hs-source-dirs:
      src
  build-depends:
      base >=4.0 && <5
    , attoparsec
    , base64-bytestring
    , bytestring
    , constraints
    , cryptonite
    , exceptions
    , memory
    , mtl
    , text
    , transformers
  if flag(warnmore)
    if impl(ghc >= 8.0.1)
      ghc-options:
        -Wall -Wcompat -Wincomplete-record-updates
        -Wincomplete-uni-patterns -Wredundant-constraints
        -Wno-name-shadowing -Wno-orphans -fwarn-tabs
    else
      ghc-options:
        -Wall
  default-language: Haskell2010

-- **
-- - Only works with stack
-- - requires STACK_RESOLVER env var to be set
test-suite doctest-tests
  type: exitcode-stdio-1.0
  main-is: doctest-tests.hs
  hs-source-dirs:
      test-other
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  if flag(warnmore)
    if impl(ghc >= 8.0.1)
      ghc-options:
        -Wall -Wcompat -Wincomplete-record-updates
        -Wincomplete-uni-patterns -Wredundant-constraints
        -Wno-name-shadowing -Wno-orphans -fwarn-tabs
    else
      ghc-options:
        -Wall
  if !(flag(stack-based-tests))
    buildable: False
  else
    build-depends:
        assumpta-core
      , base >=4.0 && <5
      , Glob
      , doctest
      , shelly
      , text
  default-language: Haskell2010

test-suite hspec-tests
  type: exitcode-stdio-1.0
  main-is: hspec-tests.hs
  other-modules:
      Network.Mail.Assumpta.MonadSmtpSpec
  hs-source-dirs:
      test-hspec
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      QuickCheck
    , assumpta-core
    , base >=4.0 && <5
    , bytestring
    , hspec
    , mtl
    , text
  if flag(warnmore)
    if impl(ghc >= 8.0.1)
      ghc-options:
        -Wall -Wcompat -Wincomplete-record-updates
        -Wincomplete-uni-patterns -Wredundant-constraints
        -Wno-name-shadowing -Wno-orphans -fwarn-tabs
    else
      ghc-options:
        -Wall
  default-language: Haskell2010

-- **
-- - Only works with stack
-- - requires STACK_RESOLVER env var to be set
test-suite compile-examples
  type: exitcode-stdio-1.0
  main-is: compile-examples.hs
  hs-source-dirs:
      test-other
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  if !(flag(stack-based-tests))
    buildable: False
  else
    build-depends:
        assumpta-core
      , base >=4.0 && <5
      , filepath
      , shelly
      , text
  if flag(warnmore)
    if impl(ghc >= 8.0.1)
      ghc-options:
        -Wall -Wcompat -Wincomplete-record-updates
        -Wincomplete-uni-patterns -Wredundant-constraints
        -Wno-name-shadowing -Wno-orphans -fwarn-tabs
    else
      ghc-options:
        -Wall
  default-language: Haskell2010