cabal-version:       2.4

name:                arion-compose
version: 0.1.2.0
synopsis:            Run docker-compose with help from Nix/NixOS
description:         Arion is a tool for building and running applications that consist of multiple docker containers using NixOS modules. It has special support for docker images that are built with Nix, for a smooth development experience and improved performance.
homepage:            https://github.com/hercules-ci/arion#readme
-- bug-reports:
license:             Apache-2.0
license-file:        LICENSE
author:              Robert Hensing
maintainer:          robert@hercules-ci.com
-- copyright:
category:            Distribution, Network, Cloud, Distributed Computing
extra-source-files:  CHANGELOG.md, README.asciidoc,
                     src/haskell/testdata/**/*.nix
                     src/haskell/testdata/**/*.json
data-files:          nix/*.nix
                   , nix/modules/composition/*.nix
                   , nix/modules/nixos/*.nix
                   , nix/modules/service/*.nix
                   , nix/modules/lib/*.nix

-- all data is verbatim from some sources
data-dir:            src

common common
  build-depends:     base >=4.12.0.0 && <4.15
                   , aeson
                   , aeson-pretty
                   , async
                   , bytestring
                   , directory
                   , lens
                   , lens-aeson
                   , process
                   , temporary
                   , text
                   , protolude >= 0.2
                   , unix
  ghc-options:     -Wall

flag ghci
  default: False
  manual: True

library
  import:              common
  exposed-modules:     Arion.Nix
                       Arion.Aeson
                       Arion.DockerCompose
                       Arion.ExtendedInfo
                       Arion.Images
                       Arion.Services
  other-modules:       Paths_arion_compose
  autogen-modules:     Paths_arion_compose
  -- other-extensions:
  hs-source-dirs:      src/haskell/lib
  default-language:    Haskell2010

executable arion
  import:              common
  main-is:             Main.hs
  -- other-modules:
  -- other-extensions:
  build-depends:       optparse-applicative
                     , arion-compose
  hs-source-dirs:      src/haskell/exe
  default-language:    Haskell2010

test-suite arion-unit-tests
  import:              common
  if flag(ghci)
    hs-source-dirs:      src/haskell/lib
    ghc-options:       -Wno-missing-home-modules
  type:                exitcode-stdio-1.0
  main-is:             TestMain.hs
  other-modules:       Spec
                     , Arion.NixSpec
  -- other-extensions:
  build-depends:       arion-compose
                     , hspec
                     , QuickCheck
  hs-source-dirs:      src/haskell/test
  default-language:    Haskell2010