packages feed

THSH-0.0.0.1: THSH.cabal

cabal-version:      3.4
-- 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 'THSH' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:               THSH

-- 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.0.0.1

-- A short (one-line) description of the package.
synopsis: A "noDSL" approach to mixing shell scripting with Haskell programs using Template Haskell

-- A longer description of the package.
-- description:

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

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

-- The package author(s).
author:             Miao, ZhiCheng

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:         zhicheng.miao@gmail.com

-- A copyright notice.
-- copyright:
category:           System
build-type:         Simple

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

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

common warnings
    ghc-options: -Wall

common extensions
    -- GHC2021 is enabled since 9.2.1 (https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html)
    default-language: GHC2021
    default-extensions: LambdaCase
                        MultiWayIf

common base-deps
    build-depends: ghc >= 9.2.0,
                   base >= 4.17.0.0 && <= 9999.0.0.0,
                   template-haskell


library
    import:           warnings, extensions, base-deps

    -- Modules exported by the library.
    exposed-modules:  THSH.Funclet
                      THSH.Script
                      THSH.Fn
                      THSH.QQ
                      THSH

    -- Modules included in this library but not exported.
    other-modules:    THSH.Internal.THUtils
                      THSH.Internal.HsExprUtils
                      THSH.Internal.PyFInternals
                      THSH.Internal.ProcessUtils

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

    -- Other library packages from which modules are imported.
    build-depends:    text,
                      transformers,
                      PyF,
                      parsec,
                      filepath,
                      process,
                      temporary

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

executable thsh
    import:           warnings, extensions, base-deps
    main-is:          main.hs
    build-depends:    THSH,
                      extra,
                      split,
                      filepath,
                      process,
                      PyF
    hs-source-dirs:   loader

test-suite THSH-test
    import:           warnings, extensions, base-deps

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

    -- Modules included in this executable, other than Main.
    -- other-modules:

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

    main-is:          Main.hs
    build-depends:
        base >=4.17.0.0,
        PyF,
        THSH
    hs-source-dirs:   test