packages feed

ngx-export-tools-extra-1.2.4: ngx-export-tools-extra.cabal

name:                       ngx-export-tools-extra
version:                    1.2.4
synopsis:                   More extra tools for Nginx haskell module
description:                More extra tools for
        <https://github.com/lyokha/nginx-haskell-module Nginx haskell module>.
homepage:                   https://github.com/lyokha/ngx-export-tools-extra
license:                    BSD3
license-file:               LICENSE
extra-source-files:         Changelog.md
author:                     Alexey Radkov <alexey.radkov@gmail.com>
maintainer:                 Alexey Radkov <alexey.radkov@gmail.com>
stability:                  stable
copyright:                  2019-2023 Alexey Radkov
category:                   Network
build-type:                 Simple
cabal-version:              1.20

source-repository head
  type:                     git
  location:                 https://github.com/lyokha/ngx-export-tools-extra

flag EDE
  description:              Build EDE module.

flag EDEUsePrettyprinter
  description:              Build EDE module migrated
                            from [ansi-wl-pprint](https://hackage.haskell.org/package/ansi-wl-pprint)
                            to [prettyprinter](https://hackage.haskell.org/package/prettyprinter).

flag PCRE
  description:              Build PCRE module.

flag SnapAggregateServer
  description:              Build Snap server for Aggregate module.

library
  default-language:         Haskell2010
  build-depends:            base >= 4.8 && < 5
                          , template-haskell >= 2.11.0.0
                          , bytestring >= 0.10.0.0
                          , base64 >= 0.3.0.0
                          , ngx-export
                          , ngx-export-tools >= 1.0
                          , http-types >= 0.7.0
                          , http-client >= 0.5.3
                          , http-client-tls >= 0.3.4
                          , http-client-brread-timeout
                          , network >= 2.4.0.0
                          , async >= 2.0.1.0
                          , aeson >= 1.0.0.0
                          , safe-exceptions
                          , resolv >= 0.2.0.1
                          , time
                          , binary
                          , case-insensitive
                          , containers
                          , unordered-containers
                          , array
                          , text
                          , safe

  if flag(SnapAggregateServer)
    build-depends:          snap-core
                          , snap-server
                          , enclosed-exceptions
    cpp-options:           -DSNAP_AGGREGATE_SERVER

  if flag(EDE)
    if flag(EDEUsePrettyprinter)
      build-depends:        ede >= 0.3.0.0
                          , prettyprinter
                          , trifecta >= 2.1
      cpp-options:         -DEDE_USE_PRETTYPRINTER
    else
      build-depends:        ede
                          , ansi-wl-pprint >= 0.6.3
                          , trifecta <= 2
                          , aeson >= 1.0.0.0 && < 2.0.0.0

  if flag(PCRE)
    build-depends:          pcre-light >= 0.4
                          , pcre-heavy

  exposed-modules:          NgxExport.Tools.Aggregate
                          , NgxExport.Tools.Prometheus
                          , NgxExport.Tools.Resolve
                          , NgxExport.Tools.ServiceHookAdaptor
                          , NgxExport.Tools.Subrequest

  if flag(EDE)
    exposed-modules:        NgxExport.Tools.EDE

  if flag(PCRE)
    exposed-modules:        NgxExport.Tools.PCRE

  ghc-options:             -Wall