packages feed

mmzk-env-0.3.0.0: mmzk-env.cabal

cabal-version:      2.4
name:               mmzk-env
version:            0.3.0.0

synopsis:           Read environment variables into a user-defined data type
description:
    mmzk-env is a Haskell library that provides functionality to read environment
    variables into user-defined data types, allowing for flexible and type-safe
    configuration management.

homepage:           https://github.com/MMZK1526/mmzk-env
bug-reports:        https://github.com/MMZK1526/mmzk-env/issues
license:            MIT
author:             Yitang Chen <mmzk1526@outlook.com>
maintainer:         Yitang Chen <mmzk1526@outlook.com>
category:           Data, Environment
extra-source-files:
    CHANGELOG.md
    LICENSE
    README.md


common settings
    ghc-options: -Wall
    default-extensions:
        BlockArguments
        DataKinds
        DeriveAnyClass
        DeriveGeneric
        DerivingVia
        FlexibleContexts
        FlexibleInstances
        ImportQualifiedPost
        InstanceSigs
        LambdaCase
        MultiWayIf
        NoFieldSelectors
        OverloadedRecordDot
        OverloadedStrings
        PolyKinds
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeApplications
        TypeFamilies
        TypeOperators
    default-language: Haskell2010


library
    import:           settings
    exposed-modules:
        Data.Env
        Data.Env.EnumParser
        Data.Env.ExtractFields
        Data.Env.RecordParser
        Data.Env.RecordParserW
        Data.Env.TypeParser
        Data.Env.TypeParserW
        Data.Env.Witness.DefaultBool
        Data.Env.Witness.DefaultNum
        Data.Env.Witness.DefaultString
    build-depends:
        base >=4.16 && <5,
        containers >= 0.6.7 && < 0.7,
        gigaparsec ^>=0.3.1,
        text >= 2.1.3 && < 2.2,
    hs-source-dirs:   src


test-suite test
    import:           settings
    main-is:          Spec.hs
    type:             exitcode-stdio-1.0
    other-modules:
        BasicTypeParserSpec
        DefaultBoolSpec
        DefaultWitnessSpec
        EnumParserSpec
        RecordParserSpec
        RecordParserWSpec
    build-depends:
        base >=4.16 && <5,
        containers,
        hspec ^>=2.11,
        mmzk-env,
        text,
    build-tool-depends:
        hspec-discover:hspec-discover ^>=2.11
    hs-source-dirs:   test


executable quickstart-example
    main-is:          QuickstartExample.hs
    build-depends:
        base >=4.16 && <5,
        mmzk-env,
    hs-source-dirs:   app
    default-language: Haskell2010


executable custom-mapping-example
    main-is:          CustomMappingExample.hs
    build-depends:
        base >=4.16 && <5,
        mmzk-env,
    hs-source-dirs:   app
    default-language: Haskell2010


executable enum-example
    main-is:          EnumExample.hs
    build-depends:
        base >=4.16 && <5,
        mmzk-env,
    hs-source-dirs:   app
    default-language: Haskell2010

executable newtype-example
    main-is:          NewtypeExample.hs
    build-depends:
        base >=4.16 && <5,
        mmzk-env,
    hs-source-dirs:   app
    default-language: Haskell2010


executable witness-example
    main-is:          WitnessExample.hs
    build-depends:
        base >=4.16 && <5,
        containers,
        mmzk-env,
    hs-source-dirs:   app
    default-language: Haskell2010