name:                b9
version:             0.5.15

synopsis:            A tool and library for building virtual machine images.

description:         Build virtual machine images for vm-deployments; resize,
                     un-partition, create from scratch or convert disk image
                     files in a variety of formats; assemble and generate all
                     associated files from templates and regular files.


                     VM images can further be modifed through scripts, which are
                     executed in LXC containers into which the vm-images as well
                     as arbitrary directories from the host are mounted.


                     All assembled files can also be accessed by vm build
                     scripts through a special directory mounted in the build
                     container, and/or can be written to directories, ISO- or
                     VFAT-images.


                     The ISO/VFAT images that B9 creates are compatible to
                     'cloud-init's 'NoCloud' data source;


                     B9 is also very well suited for compiling in a
                     containerized environment. For these applications, the
                     images can be marked as 'Transient' to indicate no further
                     interest in the VM-image itself, and B9 will discard them
                     after the build.


                     B9 will never over-write source files, not even large
                     vm-image files - there is no intended way to modify a
                     source vm-image file 'in-place'.


                     B9 operates in random build directories, which are
                     discarded when the build exists.

license:             MIT
license-file:        LICENSE
author:              Sven Heyll <svh@posteo.de>
maintainer:          svh@posteo.de
homepage:            https://github.com/sheyll/b9-vm-image-builder
bug-reports:         https://github.com/sheyll/b9-vm-image-builder/issues
copyright:           2015 Sven Heyll <svh@posteo.de>
category:            Development
build-type:          Simple
extra-source-files:  README.md, build_and_test.sh, build_haddock.sh,
                     LICENSE, TODO.org, Setup.hs, b9.cabal, .gitignore, prepare_release.sh, .travis.yml, CONTRIBUTORS
cabal-version:       >=1.10

source-repository head
  type:                 git
  location:             git://github.com/sheyll/b9-vm-image-builder.git

library
  exposed-modules:   B9
                   , B9.B9Monad
                   , B9.B9Config
                   , B9.Builder
                   , B9.ConfigUtils
                   , B9.ExecEnv
                   , B9.DiskImages
                   , B9.DiskImageBuilder
                   , B9.ShellScript
                   , B9.PartitionTable
                   , B9.MBR
                   , B9.LibVirtLXC
                   , B9.Repository
                   , B9.RepositoryIO
                   , B9.ArtifactGenerator
                   , B9.ArtifactGeneratorImpl
                   , B9.Vm
                   , B9.VmBuilder
                   , B9.Content.ErlTerms
                   , B9.Content.ErlangPropList
                   , B9.Content.YamlObject
                   , B9.Content.AST
                   , B9.Content.Generator
                   , B9.Content.StringTemplate
                   , B9.QCUtil
                   , B9.DSL
  other-modules:   Paths_b9
  -- other-extensions:
  build-depends:     ConfigFile
                   , QuickCheck
                   , aeson
                   , async
                   , base >= 4.7 && < 5
                   , binary
                   , bytestring
                   , conduit
                   , conduit-extra
                   , directory
                   , filepath
                   , hashable
                   , mtl
                   , time >= 1.5.0 && < 2
                   , parallel
                   , parsec
                   , pretty-show
                   , pretty
                   , process
                   , random
                   , semigroups
                   , syb
                   , template
                   , text
                   , transformers
                   , unordered-containers
                   , vector
                   , yaml
                   , bifunctors
                   , free
                   , boxes
  default-extensions: TupleSections
                    , GeneralizedNewtypeDeriving
                    , DeriveDataTypeable
                    , DeriveGeneric
                    , RankNTypes
                    , FlexibleContexts
                    , GADTs
                    , DataKinds
                    , KindSignatures
                    , TypeFamilies
                    , DeriveFunctor
                    , TemplateHaskell
                    , StandaloneDeriving
                    , CPP
  hs-source-dirs:    src/lib
  default-language:  Haskell2010
  ghc-options:       -with-rtsopts=-N -Wall
                     -fwarn-unused-binds -fno-warn-unused-do-bind
  if impl(ghc >= 7.8.2) && impl(ghc <= 7.10)
     ghc-options: -fno-warn-amp

executable b9c
  main-is:           Main.hs
  -- other-modules:
  -- other-extensions:
  build-depends:     b9
                   , base >= 4.7 && < 5
                   , directory
                   , bytestring
                   , optparse-applicative
  hs-source-dirs:    src/cli
  default-language:  Haskell2010
  default-extensions: TupleSections
                    , GeneralizedNewtypeDeriving
                    , DeriveDataTypeable
                    , RankNTypes
                    , FlexibleContexts
                    , GADTs
                    , DataKinds
                    , KindSignatures
                    , TypeFamilies
                    , DeriveFunctor
                    , TemplateHaskell
                    , CPP
  ghc-options:       -threaded -with-rtsopts=-N -Wall
                     -fwarn-unused-binds -fno-warn-unused-do-bind
  if impl(ghc >= 7.8.2) && impl(ghc <= 7.10)
     ghc-options: -fno-warn-amp

test-suite spec
  type:              exitcode-stdio-1.0
  ghc-options:       -Wall
  hs-source-dirs:    src/tests
  default-language:  Haskell2010
  main-is:           Spec.hs
  other-modules:     B9.Content.ErlTermsSpec
                   , B9.Content.ErlangPropListSpec
                   , B9.Content.YamlObjectSpec
                   , B9.ArtifactGeneratorImplSpec
                   , B9.DiskImagesSpec
  build-depends:     base >= 4.7 && < 5
                   , b9
                   , hspec
                   , hspec-expectations
                   , QuickCheck
                   , aeson
                   , yaml
                   , vector
                   , unordered-containers
                   , bytestring
                   , text
                   , semigroups
  default-extensions: TupleSections
                    , GeneralizedNewtypeDeriving
                    , DeriveDataTypeable
                    , RankNTypes
                    , FlexibleContexts
                    , GADTs
                    , DataKinds
                    , KindSignatures
                    , TypeFamilies
                    , DeriveFunctor
                    , TemplateHaskell
                    , CPP
  if impl(ghc >= 7.8.2) && impl(ghc <= 7.10)
     ghc-options: -fno-warn-amp -fno-warn-unused-do-bind