packages feed

richenv-0.1.0.0: richenv.cabal

cabal-version:   3.0

-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.

-- Initial package description 'richenv' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:            richenv

-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary:  +-+------- breaking API changes
--               | | +----- non-breaking API additions
--               | | | +--- code changes with no API change
version:         0.1.0.0

-- A short (one-line) description of the package.
synopsis:        Rich environment variable setup for Haskell

-- A longer description of the package.
description:
  This package exposes a type that captures a set of rules to modify an existing environment variable set, be it a provided list of key-value pairs (list of duples) or the system's environment variable set itself. Each rule can be either a prefix, a mapping or a value. See README.md for more details.

-- URL for the project homepage or repository.
homepage:        https://github.com/DavSanchez/richenv

-- The license under which the package is released.
license:         MIT

-- The file containing the license text.
license-file:    LICENSE

-- The package author(s).
author:          David Sánchez

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:      davidslt+git@pm.me

-- A copyright notice.
copyright:       2023 David Sánchez
category:        Configuration
build-type:      Simple

-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files:
  CHANGELOG.md
  README.md

-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
-- extra-source-files:

tested-with:     GHC ==9.2.8 || ==9.4.6

source-repository head
  type:     git
  location: https://github.com/DavSanchez/richenv.git

common common-options
  build-depends:
    , aeson                 >=2.1.0  && <2.3
    , base                  >=4.14   && <5
    , text                  >=2.0    && <3
    , unordered-containers  >=0.2.19 && <0.3

  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
    -Wincomplete-record-updates -Wredundant-constraints
    -Wnoncanonical-monad-instances

  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 -fwrite-ide-info -hiedir=.hie

  if impl(ghc >=8.10)
    ghc-options: -Wunused-packages

  if impl(ghc >=9.0)
    ghc-options: -Winvalid-haddock

  if impl(ghc >=9.2)
    ghc-options: -Wredundant-bang-patterns -Woperator-whitespace

  if impl(ghc >=9.4)
    ghc-options: -Wredundant-strictness-flags

  -- Base language which the package is written in.
  default-language:   Haskell2010
  default-extensions:
    DeriveAnyClass
    DeriveGeneric
    DerivingStrategies
    ImportQualifiedPost
    InstanceSigs
    OverloadedStrings

library
  -- Import common options.
  import:          common-options

  -- Modules exported by the library.
  exposed-modules:
    RichEnv
    RichEnv.Setters
    RichEnv.Types

  -- Modules included in this library but not exported.
  other-modules:
    RichEnv.Types.Mappings
    RichEnv.Types.Prefixes
    RichEnv.Types.Values

  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:

  -- Other library packages from which modules are imported.
  -- build-depends:

  -- Directories containing source files.
  hs-source-dirs:  src

test-suite richenv-test
  -- Import common options.
  import:             common-options

  -- Modules included in this executable, other than Main.
  other-modules:
    ArbitraryInstances
    RichEnv.SettersSpec
    RichEnvSpec
    SpecHook

  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:

  -- The interface type and version of the test suite.
  type:               exitcode-stdio-1.0

  -- Directories containing source files.
  hs-source-dirs:     test

  -- The entrypoint to the test suite.
  main-is:            Spec.hs

  -- Test dependencies.
  build-depends:
    , aeson
    , bytestring            >=0.11   && <0.13
    , hspec                 >=2.10   && <2.12
    , QuickCheck            >=2.14   && <2.15
    , quickcheck-instances  >=0.3.29 && <0.4
    , richenv
    , yaml                  >=0.11   && <0.12

  -- , process               >=1.6    && <1.7
  build-tool-depends: hspec-discover:hspec-discover