-- Initial language-puppet.cabal generated by cabal init.  For further
-- documentation, see http://haskell.org/cabal/users-guide/

name:                language-puppet
version:             1.4.6
synopsis:            Tools to parse and evaluate the Puppet DSL.
description:         This is a set of tools that is supposed to fill all your Puppet needs : syntax checks, catalog compilation, PuppetDB queries, simulation of complex interactions between nodes, Puppet master replacement, and more !
homepage:            http://lpuppet.banquise.net/
license:             BSD3
license-file:        LICENSE
author:              Simon Marechal
maintainer:          bartavelle@gmail.com
-- copyright:
category:            System
build-type:          Simple
cabal-version:       >=1.8
bug-reports:         https://github.com/bartavelle/language-puppet/issues

Tested-With:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.1

extra-source-files:
    CHANGELOG
    README.md
    HLint.hs
    tests/hiera/*.yaml
    tests/hiera/interpolate/config/*.yaml
    tests/hiera/interpolate/data/*.yaml
    tests/hiera/*.com.json
    tests/Parser/lexer/*.pp

Data-Files:
  ruby/hrubyerb.rb

source-repository head
  type: git
  location: git://github.com/bartavelle/language-puppet.git

library
  hs-source-dirs: src
  exposed-modules:       XPrelude
                       , Erb
                       , Facter
                       , Hiera.Server
                       , PuppetDB
                       , Puppet.Language
                       , Puppet.Parser
                       -- exposed internal to ease testing
                       , Puppet.Parser.Internal
                       , Puppet.Interpreter
                       , Puppet.Runner
  other-modules:         XPrelude.Extra
                       , XPrelude.PP
                       , Erb.Ruby
                       , Erb.Parser
                       , PuppetDB.Remote
                       , PuppetDB.Core
                       , PuppetDB.TestDB
                       , Puppet.Language.Core
                       , Puppet.Language.NativeTypes
                       , Puppet.Language.NativeTypes.Helpers
                       , Puppet.Language.NativeTypes.Concat
                       , Puppet.Language.NativeTypes.Cron
                       , Puppet.Language.NativeTypes.Exec
                       , Puppet.Language.NativeTypes.File
                       , Puppet.Language.NativeTypes.Group
                       , Puppet.Language.NativeTypes.Host
                       , Puppet.Language.NativeTypes.Mount
                       , Puppet.Language.NativeTypes.Notify
                       , Puppet.Language.NativeTypes.Package
                       , Puppet.Language.NativeTypes.SshSecure
                       , Puppet.Language.NativeTypes.User
                       , Puppet.Language.NativeTypes.ZoneRecord
                       , Puppet.Language.Paths
                       , Puppet.Language.Resource
                       , Puppet.Language.Value
                       , Puppet.Language.WireCatalog
                       , Puppet.Parser.PrettyPrinter
                       , Puppet.Parser.Types
                       , Puppet.Parser.Lens
                       , Paths_language_puppet
                       , Puppet.Interpreter.Types
                       , Puppet.Interpreter.PrettyPrinter
                       , Puppet.Interpreter.Helpers
                       , Puppet.Interpreter.RubyRandom
                       , Puppet.Interpreter.Resolve.Sprintf
                       , Puppet.Interpreter.Resolve
                       , Puppet.Interpreter.IO
                       , Puppet.Runner.Stdlib
                       , Puppet.Runner.Stats
                       , Puppet.Runner.Puppetlabs
                       , Puppet.Runner.Preferences
                       , Puppet.Runner.Erb.Evaluate
                       , Puppet.Runner.Erb
                       , Puppet.Runner.Pure
                       , Puppet.Runner.Daemon.FileParser
                       , Puppet.Runner.Daemon.OptionalTests
                       , Puppet.Runner.Daemon
  extensions:          OverloadedStrings, BangPatterns, LambdaCase, NoImplicitPrelude, FlexibleContexts, FlexibleInstances
  ghc-options:         -Wall -funbox-strict-fields
  -- ghc-prof-options:    -auto-all -caf-all
  build-depends:       aeson                >= 1.0.0.0 && < 1.5
                     , ansi-wl-pprint       >= 0.6.8
                     , attoparsec           >= 0.12
                     , base                 >=4.9      && < 5
                     , base16-bytestring    == 0.1.*
                     , bytestring                         < 0.11
                     , case-insensitive     == 1.2.*
                     , containers           >= 0.5     && < 0.7
                     , cryptonite           >= 0.6
                     , directory            >= 1.2     && < 1.4
                     , filecache            >= 0.2.9   && < 0.5
                     , filepath             >= 1.4
                     , formatting                         < 7
                     , hashable             >= 1.2     && < 1.4
                     , http-api-data        >= 0.2     && < 0.5
                     , http-client          >= 0.4.30  && < 0.7
                     , hruby                >= 0.3.5   && < 0.4
                     , hslogger             >= 1.2     && < 1.4
                     , lens                 >= 4.12    && < 5
                     , lens-aeson           >= 1.0
                     , megaparsec           >= 7       && < 8
                     , memory               >= 0.14    && < 0.16
                     , mtl                  >= 2.2.1   && < 2.3
                     , operational          >= 0.2.3   && < 0.3
                     , parsec               == 3.1.*
                     , parser-combinators   == 1.*
                     , pcre-utils           >= 0.1.7   && < 0.2
                     , protolude            >= 0.2     && < 0.3
                     , random
                     , regex-pcre-builtin   >= 0.94.4
                     , scientific           >= 0.2     && < 0.4
                     , servant              >= 0.9     && < 0.17
                     , servant-client       >= 0.9     && < 0.17
                     , split                == 0.2.*
                     , stm                  >= 2.4     && < 2.6
                     , strict-base-types    >= 0.3
                     , text                 >= 0.11    && < 1.3
                     , time                 >= 1.5     && < 2
                     , transformers         >= 0.4     && < 0.6
                     , unix                 >= 2.7     && < 2.8
                     , unordered-containers == 0.2.*
                     , vector               >= 0.10    && < 0.13
                     , yaml                 >= 0.8.31  && < 0.12
Test-Suite spec
  hs-source-dirs: tests
  type:           exitcode-stdio-1.0
  ghc-options:    -Wall -Wno-missing-signatures -rtsopts -threaded
  extensions:     OverloadedStrings, NoImplicitPrelude, FlexibleContexts, LambdaCase
  build-depends:    base
                  , Glob
                  , hslogger
                  , hspec                   >= 2.0 && < 3.0
                  , hspec-megaparsec
                  , megaparsec
                  , language-puppet
                  , lens                    >= 4.12  && < 5
                  , mtl                     >= 2.2.1 && < 2.3
                  , scientific              >= 0.2   && < 0.4
                  , strict-base-types
                  , text
                  , temporary
                  , transformers
                  , unordered-containers
                  , vector
                  , pcre-utils
  other-modules:  Helpers
                  Parser.DT
                  Parser.ExprSpec
                  Parser.LexerSpec
                  Interpreter.ClassSpec
                  Interpreter.CollectorSpec
                  Interpreter.IfSpec
                  Interpreter.EvalSpec
                  Interpreter.EvaluateStatementSpec
                  Interpreter.Function.ShellquoteSpec
                  Interpreter.Function.SprintfSpec
                  Interpreter.Function.SizeSpec
                  Interpreter.Function.MergeSpec
                  Interpreter.Function.EachSpec
                  Interpreter.Function.WithSpec
                  Interpreter.Function.DeleteAtSpec
                  Interpreter.Function.AssertPrivateSpec
                  Interpreter.Function.JoinKeysToValuesSpec
                  Interpreter.Function.LookupSpec
                  Interpreter.Function.SuffixSpec
                  Interpreter.Function.PrefixSpec
                  HieraSpec
                  ErbSpec
                  PuppetdbSpec
  main-is:        Spec.hs


executable puppetresources
  hs-source-dirs:      progs
  extensions:          BangPatterns, OverloadedStrings
  ghc-options:         -Wall -rtsopts -funbox-strict-fields -threaded -with-rtsopts "-A2M" -eventlog
  -- ghc-prof-options:    -auto-all -caf-all -fprof-auto
  other-modules:       Paths_language_puppet
  build-depends:       base
                     , Glob
                     , aeson
                     , async
                     , bytestring
                     , containers
                     , transformers
                     , mtl
                     , hslogger
                     , http-client
                     , language-puppet
                     , lens
                     , optparse-applicative
                     , regex-pcre-builtin
                     , text
                     , unordered-containers
                     , vector
  main-is:             PuppetResources.hs

executable yera
  hs-source-dirs:      progs
  extensions:          BangPatterns, OverloadedStrings
  ghc-options:         -Wall -rtsopts -threaded
  build-depends:       base
                     , language-puppet
                     , optparse-applicative
                     , text
                     , strict-base-types
                     , ansi-wl-pprint
                     , unordered-containers
  main-is:             yera.hs

executable pdbquery
  hs-source-dirs:      progs
  extensions:          BangPatterns, OverloadedStrings
  ghc-options:         -Wall -rtsopts -threaded
  -- ghc-prof-options:    -auto-all -caf-all -fprof-auto
  other-modules:       Paths_language_puppet
  build-depends:       base
                     , aeson
                     , bytestring
                     , http-client
                     , language-puppet
                     , lens
                     , mtl
                     , optparse-applicative
                     , text
                     , transformers
                     , unordered-containers
                     , vector
                     , yaml
  main-is: pdbQuery.hs
