cabal-version:       2.4
name:                summoner
version:             2.0.1.1
synopsis:            Tool for scaffolding fully configured batteries-included production-level Haskell projects.
description:         Tool for scaffolding fully configured batteries-included production-level Haskell projects.
                     See [README.md](https://github.com/kowainik/summoner#-summoner) for details.
homepage:            https://github.com/kowainik/summoner
bug-reports:         https://github.com/kowainik/summoner/issues
license:             MPL-2.0
license-file:        LICENSE
author:              Veronika Romashkina, Dmitrii Kovanikov
maintainer:          Kowainik <xrom.xkov@gmail.com>
copyright:           2018-2020 Kowainik
category:            CLI, CLI Tool, Development
build-type:          Simple
stability:           stable
extra-doc-files:     README.md
                     CHANGELOG.md
tested-with:         GHC == 8.4.4
                     GHC == 8.6.5
                     GHC == 8.8.3
                     GHC == 8.10.1
extra-source-files:
    examples/summoner-default.toml

    examples/cabal-minimal/*.md
    examples/cabal-minimal/*.cabal
    examples/cabal-minimal/app/*.hs

    examples/cabal-full/*.yml
    examples/cabal-full/*.md
    examples/cabal-full/*.cabal
    examples/cabal-full/src/*.hs
    examples/cabal-full/app/*.hs
    examples/cabal-full/test/*.hs
    examples/cabal-full/benchmark/*.hs
    examples/cabal-full/.gitignore
    examples/cabal-full/.github/workflows/ci.yml
    examples/cabal-full/.travis.yml
    examples/cabal-full/LICENSE

    examples/stack-full/*.yml
    examples/stack-full/*.yaml
    examples/stack-full/*.md
    examples/stack-full/*.cabal
    examples/stack-full/src/*.hs
    examples/stack-full/app/*.hs
    examples/stack-full/test/*.hs
    examples/stack-full/benchmark/*.hs
    examples/stack-full/.gitignore
    examples/stack-full/.travis.yml
    examples/stack-full/LICENSE

    examples/full-batteries/*.yml
    examples/full-batteries/*.yaml
    examples/full-batteries/*.md
    examples/full-batteries/*.cabal
    examples/full-batteries/*.txt
    examples/full-batteries/src/*.hs
    examples/full-batteries/app/*.hs
    examples/full-batteries/test/*.hs
    examples/full-batteries/benchmark/*.hs
    examples/full-batteries/.gitignore
    examples/full-batteries/.github/CODEOWNERS
    examples/full-batteries/.github/workflows/ci.yml
    examples/full-batteries/.stylish-haskell.yaml
    examples/full-batteries/.travis.yml
    examples/full-batteries/LICENSE

source-repository head
  type:     git
  location: git@github.com:kowainik/summoner.git

common common-options
  build-depends:       base >= 4.11 && < 4.15
                     , relude ^>= 0.7.0.0

  mixins:              base hiding (Prelude)
                     , relude (Relude as Prelude
                              , Relude.Extra.Enum
                              )

  ghc-options:         -Wall
                       -Wcompat
                       -Widentities
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
  if impl(ghc >= 8.0)
    ghc-options:       -Wredundant-constraints
  if impl(ghc >= 8.2)
    ghc-options:       -fhide-source-paths
  if impl(ghc >= 8.4)
    ghc-options:       -Wmissing-export-lists
                       -Wpartial-fields
  if impl(ghc >= 8.8)
    ghc-options:       -Wmissing-deriving-strategies
                       -Werror=missing-deriving-strategies
  if impl(ghc >= 8.10)
    ghc-options:       -Wunused-packages

  default-extensions:  DeriveGeneric
                       DerivingStrategies
                       GeneralizedNewtypeDeriving
                       InstanceSigs
                       LambdaCase
                       OverloadedStrings
                       RecordWildCards
                       ScopedTypeVariables
                       TypeApplications

  default-language:    Haskell2010

library
  import:              common-options
  hs-source-dirs:      src
  exposed-modules:     Summoner
                         Summoner.CLI
                         Summoner.Config
                         Summoner.CustomPrelude
                         Summoner.Decision
                         Summoner.Default
                         Summoner.GhcVer
                         Summoner.License
                         Summoner.Mode
                         Summoner.Project
                         Summoner.Question
                         Summoner.Settings
                         Summoner.Source
                         Summoner.Template
                           Summoner.Template.Cabal
                           Summoner.Template.Doc
                           Summoner.Template.GitHub
                           Summoner.Template.Haskell
                           Summoner.Template.Script
                           Summoner.Template.Stack
                         Summoner.Text
                         Summoner.Tree

  autogen-modules:     Paths_summoner
  other-modules:       Paths_summoner

  build-depends:       aeson >= 1.2.4.0 && < 1.6
                     , colourista ^>= 0.1
                     , containers ^>= 0.6
                     , directory ^>= 1.3.0.2
                     , filepath ^>= 1.4.1.2
                     , generic-data ^>= 0.8.0.0
                     , gitrev ^>= 1.3.1
                     , neat-interpolation ^>= 0.3.2.2
                     , optparse-applicative ^>= 0.15
                     , process ^>= 1.6.1.0
                     , shellmet ^>= 0.0.3.0
                     , text ^>= 1.2.3.0
                     , time >= 1.8 && < 1.11
                     , tomland ^>= 1.3.0.0
                     , validation-selective >= 0.0.0.0 && < 0.2

executable summon
  import:              common-options
  hs-source-dirs:      app
  main-is:             Cli.hs
  build-depends:       summoner

  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N

test-suite summoner-test
  import:              common-options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test

  main-is:             Spec.hs
  other-modules:       Test.CustomPrelude
                       Test.DecisionSpec
                       Test.Golden
                       Test.Script
                       Test.Show
                       Test.TomlSpec
                       Test.QuestionSpec

  build-depends:       directory
                     , filepath
                     , hedgehog >= 0.5.3 && < 1.1
                     , hspec >= 2.4.8
                     , hspec-hedgehog ^>= 0.0.1.1
                     , neat-interpolation
                     , text
                     , tomland
                     , tree-diff >= 0.0.2 && < 0.2
                     , summoner
                     , validation-selective

  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N