Cabal-version:       >=1.10
Name:                keter
Version:             2.0.1
Synopsis:            Web application deployment manager, focusing on Haskell web frameworks
Description:
    Deployment system for web applications, originally intended for hosting Yesod
    applications. Keter does the following actions for your application:
    .
    * Binds to the main port (usually port 80) and reverse proxies requests to your application based on virtual hostnames.
    * Provides SSL support if requested.
    * Automatically launches applications, monitors processes, and relaunches any processes which die.
    * Provides graceful redeployment support, by launching a second copy of your application, performing a health check, and then switching reverse proxying to the new process.
    * Management of log files.
    .
    Keter provides many more advanced features and extension points. It allows configuration of static hosts, redirect rules, management of PostgreSQL databases, and more. It supports a simple bundle format for applications which allows for easy management of your web apps.

Homepage:            http://www.yesodweb.com/
License:             MIT
License-file:        LICENSE
Author:              Michael Snoyman
Maintainer:          michael@snoyman.com
Category:            Web, Yesod
Build-type:          Simple
extra-source-files:  ChangeLog.md
                     README.md

--Data-Files:        incoming/foo/bundle.sh, incoming/foo/config/keter.yaml

flag system-filepath
  description: Use system-filepath
  default: False

Library
  default-language:    Haskell98
  Build-depends:       base                      >= 4             && < 5
                     , directory
                     , fsnotify >= 0.3
                     , bytestring
                     , text
                     , containers
                     , transformers
                     , process                   >= 1.4.3         && < 1.7
                     , random
                     , filepath
                     , zlib
                     , network
                     , time
                     , tar                       >= 0.4
                     , template-haskell
                     , blaze-builder             >= 0.3           && < 0.5
                     , yaml                      >= 0.8.4         && < 0.12
                     , unix-compat               >= 0.3           && < 0.6
                     , conduit                   >= 1.1
                     , conduit-extra             >= 1.1
                     , http-reverse-proxy        >= 0.6.0.1       && < 0.7
                     , unix                      >= 2.5
                     , wai-app-static            >= 3.1           && < 3.2
                     , wai                       >= 3.2.2
                     , wai-extra                 >= 3.0.3         && < 3.2
                     , http-types
                     , regex-tdfa                >= 1.1
                     , attoparsec                >= 0.10
                     , http-client               >= 0.5.0
                     , http-conduit              >= 2.1
                     , case-insensitive
                     , array
                     , mtl
                     , warp
                     , warp-tls                  >= 3.0.3         && < 3.4.0
                     , aeson
                     , unordered-containers
                     , vector
                     , stm                       >= 2.4
                     , async
                     , lifted-base
                     , tls                       >= 1.4
                     , tls-session-manager
                     , optparse-applicative
                     , indexed-traversable

  if impl(ghc < 7.6)
    build-depends:     ghc-prim
  if flag(system-filepath)
    build-depends:
                     system-filepath
    cpp-options:       -DSYSTEM_FILEPATH

  Exposed-Modules:     Keter.Plugin.Postgres
                       Keter.Config
                       Keter.Config.V04
                       Keter.Config.V10
                       Keter.Common
                       Keter.Config.Middleware
                       Keter.App
                       Keter.AppManager
                       Keter.LabelMap
                       Keter.Cli
                       Keter.Main
                       Keter.PortPool
                       Keter.Proxy
                       Keter.HostManager
                       Keter.Rewrite
                       Keter.Yaml.FilePath
                       Keter.TempTarball
                       Keter.Conduit.LogFile
                       Keter.Conduit.Process.Unix
  Other-Modules:
                       Keter.Aeson.KeyHelper
  ghc-options:         -Wall
  c-sources:           cbits/process-tracker.c
  hs-source-dirs: src
Executable keter
  default-language:    Haskell98
  Main-is:             keter.hs
  hs-source-dirs:      src/main
  Build-depends:       base, keter, filepath
  ghc-options:         -threaded -Wall
  other-modules:       Paths_keter

test-suite test
    default-language:    Haskell98
    hs-source-dirs: test
    main-is: Spec.hs
    type: exitcode-stdio-1.0
    build-depends:   base
                   , transformers
                   , conduit
                   , bytestring
                   , unix
                   , tasty
                   , tasty-hunit
                   , keter
                   , HUnit
                   , wreq
                   , lens
                   , stm
                   , http-conduit
                   , wai
                   , warp
                   , http-types
                   , http-client
    ghc-options:     -Wall -threaded

source-repository head
  type:     git
  location: https://github.com/snoyberg/keter