name:                hapistrano
version:             0.4.1.1
synopsis:            A deployment library for Haskell applications
description:
  .
  Hapistrano makes it easy to reliably deploy Haskell applications
  to a server.
  .
  Following popular libraries like Ruby's <http://capistranorb.com/
  Capistrano>, Hapistrano does the work of building the application
  with dependencies into a distinct folder, and then atomically moves
  a symlink to the latest complete build.
  .
  This allows for atomic switchovers to new application code after the
  build is complete. Rollback is even simpler, since Hapistrano can
  just point the `current` symlink to the previous release.
  .
  See <https://github.com/stackbuilders/hapistrano the project readme on GitHub>
  for more information.
  .
license:             MIT
license-file:        LICENSE
author:              Justin Leitgeb
maintainer:          jpaucar@stackbuilders.com
copyright:           2015-Present Stack Builders Inc.
category:            System
homepage:            https://github.com/stackbuilders/hapistrano
bug-reports:         https://github.com/stackbuilders/hapistrano/issues
build-type:          Simple
cabal-version:       >=1.18
tested-with:         GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.3, GHC==8.10.1
extra-source-files:  CHANGELOG.md
                   , README.md
                   , Dockerfile
data-files:          script/clean-build.sh
                   , fixtures/*.yaml

flag dev
  description:        Turn on development settings.
  manual:             True
  default:            False

flag static
  description:        Build a static binary.
  manual:             True
  default:            False

library
  hs-source-dirs:      src
  exposed-modules:     System.Hapistrano
                     , System.Hapistrano.Commands
                     , System.Hapistrano.Config
                     , System.Hapistrano.Core
                     , System.Hapistrano.Types
                     , System.Hapistrano.Commands.Internal
  build-depends:       aeson              >= 0.11 && < 1.6
                     , ansi-terminal      >= 0.9 && < 0.12
                     , base               >= 4.8 && < 5.0
                     , filepath           >= 1.2 && < 1.5
                     , formatting         >= 6.2 && < 7.0
                     , gitrev             >= 1.2 && < 1.4
                     , mtl                >= 2.0 && < 3.0
                     , stm                >= 2.0 && < 2.6
                     , path               >= 0.5 && < 0.8
                     , process            >= 1.4 && < 1.7
                     , typed-process      >= 0.2 && < 0.3
                     , time               >= 1.5 && < 1.11
                     , transformers       >= 0.4 && < 0.6
                     , yaml               >= 0.8.16 && < 0.12
  if flag(dev)
    ghc-options:       -Wall -Werror
  else
    ghc-options:       -O2 -Wall
  default-language:    Haskell2010

executable hap
  hs-source-dirs:      app
  main-is:             Main.hs
  other-modules:       Paths_hapistrano
  build-depends:       aeson              >= 0.11 && < 1.6
                     , async              >= 2.0.1.6 && < 2.4
                     , base               >= 4.8 && < 5.0
                     , formatting         >= 6.2 && < 7.0
                     , gitrev             >= 1.2 && < 1.4
                     , hapistrano
                     , optparse-applicative >= 0.11 && < 0.16
                     , path               >= 0.5 && < 0.8
                     , path-io            >= 1.2 && < 1.7
                     , stm                >= 2.4 && < 2.6
                     , yaml               >= 0.8.16 && < 0.12
  if flag(dev)
    ghc-options:       -threaded -rtsopts -with-rtsopts=-N -Wall -Werror
  else
    if flag(static)
      ghc-options:       -threaded -rtsopts -with-rtsopts=-N -O2 -Wall -static -optl-static
    else
      ghc-options:       -threaded -rtsopts -with-rtsopts=-N -O2 -Wall
  default-language:    Haskell2010

test-suite test
  type:                exitcode-stdio-1.0
  hs-source-dirs:      spec
  main-is:             Spec.hs
  other-modules:       System.HapistranoSpec
                     , System.HapistranoConfigSpec
                     , System.HapistranoPropsSpec
  build-depends:       base               >= 4.8 && < 5.0
                     , directory          >= 1.2.5 && < 1.4
                     , filepath           >= 1.2 && < 1.5
                     , hapistrano
                     , hspec              >= 2.0 && < 3.0
                     , mtl                >= 2.0 && < 3.0
                     , path               >= 0.5 && < 0.7.1
                     , path-io            >= 1.2 && < 1.7
                     , process            >= 1.4 && < 1.7
                     , QuickCheck         >= 2.5.1 && < 3.0
                     , silently           >= 1.2 && < 1.3
                     , temporary          >= 1.1 && < 1.4
                     , yaml               >= 0.8.16 && < 0.12
  build-tools:        hspec-discover   >= 2.0  && < 3.0

  if flag(dev)
    ghc-options:       -threaded -rtsopts -with-rtsopts=-N -Wall -Werror
  else
    ghc-options:       -threaded -rtsopts -with-rtsopts=-N -O2 -Wall
  default-language:    Haskell2010

source-repository head
  type:     git
  location: https://github.com/stackbuilders/hapistrano.git