packages feed

shelly-1.12.1: shelly.cabal

cabal-version: 2.0

Name:          shelly
Version:       1.12.1

Synopsis:      shell-like (systems) programming in Haskell

Description:   Shelly provides convenient systems programming in Haskell,
               similar in spirit to POSIX shells. Shelly:
               .
                 * is aimed at convenience and getting things done rather than
                   being a demonstration of elegance,
               .
                 * has detailed and useful error messages,
               .
                 * maintains its own environment, making it thread-safe.
               .
               Shelly is originally forked from the Shellish package.
               .
               See the shelly-extra package for additional functionality.
               .
               An overview is available in the README: <https://github.com/gregwebs/Shelly.hs/blob/master/README.md>

Homepage:      https://github.com/gregwebs/Shelly.hs
License:       BSD3
License-file:  LICENSE
Author:        Greg Weber, Petr Rockai
Maintainer:    Andreas Abel
Category:      Development
Build-type:    Simple

tested-with:
  GHC == 9.6.1
  GHC == 9.4.4
  GHC == 9.2.7
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2

extra-doc-files:
  README.md
  ChangeLog.md

-- for the sdist of the test suite
extra-source-files:
  test/src/*.hs
  test/examples/*.sh
  test/examples/*.hs
  test/data/zshrc
  test/data/nonascii.txt
  test/data/symlinked_dir/hoge_file
  test/data/hello.sh
  test/testall

Library
  Exposed-modules:
    Shelly
    Shelly.Lifted
    Shelly.Pipe
    Shelly.Unix

  other-modules:
    Shelly.Base
    Shelly.Find
    Shelly.Directory

  hs-source-dirs: src

  -- Andreas Abel, 2021-11-20, 2023-02-27:
  -- Unless other constraints exist, lower bounds (lb) are chosen
  -- as suggested by `cabal gen-bounds` with GHC 8.2, with some fixes:
  --   * lb version should exist on hackage
  --   * need to respect the ghc-shipped version (e.g. containers).
  -- Upper bounds should be omitted in general,
  -- unless breakage with major version bumps is expected.
  -- Upper bounds can always be added after the fact via (bulk) hackage revisions.
  Build-depends:
      base                      >= 4.10      && < 5
        -- support GHC >= 8.2
    , async                     >= 2.2.3
    , bytestring                >= 0.10.8.0
    , containers                >= 0.5.10.2
    , directory                 >= 1.3.0.0   && < 1.4
    , enclosed-exceptions       >= 1.0.1
    , exceptions                >= 0.10.0
    , filepath                  >= 1.4.1.1
    , lifted-async              >= 0.10.2
    , lifted-base               >= 0.2.3.2
    , monad-control             >= 0.3.2     && < 1.1
    , mtl                       >= 2.2.2
    , process                   >= 1.6.1.0
    , text                      >= 1.2.3.1
    , time                      >= 1.3       && < 1.13
    , transformers              >= 0.5.2.0
    , transformers-base         >= 0.4.5
    , unix-compat               >= 0.4.1.1   && < 0.8

  ghc-options:
    -Wall
    -Wcompat

  cpp-options:
    -DNO_PRELUDE_CATCH

  default-language: Haskell2010
  default-extensions:
    CPP
    TypeOperators

source-repository head
  type:     git
  location: https://github.com/gregwebs/Shelly.hs

Flag lifted
   Description: run the tests against Shelly.Lifted
   Default: False

Test-Suite shelly-testsuite
  type:           exitcode-stdio-1.0
  hs-source-dirs: test/src
  main-is:        TestMain.hs
  other-modules:
    CopySpec
    EnvSpec
    FailureSpec
    FindSpec
    Help
    LiftedSpec
    MoveSpec
    PipeSpec
    PrintCommandsFnSpec
    ReadFileSpec
    RmSpec
    RunSpec
    ShowCommandSpec
    SshSpec
    TestInit
    WhichSpec
    WriteSpec

  ghc-options:
    -threaded
    -Wall
    -Wcompat
    -fwarn-tabs
    -funbox-strict-fields
    -fno-warn-type-defaults

  default-language: Haskell2010
  default-extensions:
    OverloadedStrings
    ExtendedDefaultRules

  if flag(lifted)
     cpp-options: -DLIFTED

  build-depends:
    shelly
    , base
    , bytestring
    , directory
    , filepath
    , lifted-async
    , mtl
    , text
    , transformers
    , unix-compat
    -- additional dependencies
    , hspec                     >= 2.2.2
    , hspec-contrib
    , HUnit                     >= 1.2.5.2

  default-extensions:
    CPP

Flag build-examples
   Description: build some example programs
   Default: False
   Manual: True

-- demonstrated that command output in Shellish was not shown until after the command finished
-- not necessary anymore
Executable drain
  hs-source-dirs: test/examples
  main-is: drain.hs
  default-language: Haskell2010
  if flag(build-examples)
    buildable: True

    build-depends: base
                 , shelly
                 , text

    default-extensions:
      CPP
  else
    buildable: False

Executable run-handles
  hs-source-dirs: test/examples
  main-is: run-handles.hs
  default-language: Haskell2010
  if flag(build-examples)
    buildable: True

    build-depends: base
                 , shelly
                 , text

    default-extensions:
      CPP
  else
    buildable: False

Executable Color
  hs-source-dirs: test/examples
  main-is: color.hs
  default-language: Haskell2010
  if flag(build-examples)
    buildable: True

    build-depends: base
                 , process
                 , shelly
                 , text
  else
    buildable: False