packages feed

shelly-1.11.0: shelly.cabal

Name:       shelly

Version:     1.11.0
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
Cabal-version:       >=1.10

tested-with:
  GHC == 9.4.4
  GHC == 9.2.5
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2
  GHC == 8.0.2

-- 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
  README.md
  ChangeLog.md

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:
  -- Unless other constraints exist, lower bounds are chosen
  -- such that all versions that build with GHC 8
  -- (according to matrix.hackage.haskell.org) are included.
  Build-depends:
      base                      >= 4.9       && < 5
        -- support GHC >= 8
    , async
    , bytestring                >= 0.10.6.0
    , containers                >= 0.5.7.0
    , directory                 >= 1.3.0.0   && < 1.4
    , enclosed-exceptions
    , exceptions                >= 0.8.2.1
    , filepath
    , lifted-async
    , lifted-base               >= 0.2.3.2
    , monad-control             >= 0.3.2     && < 1.1
    , mtl                       >= 2.2.2
    , process                   >= 1.4
    , text                      >= 1.2.2.0
    , time                      >= 1.3       && < 1.13
    , transformers              >= 0.5.0.0
    , transformers-base
    , unix-compat               >= 0.4.1.1   && < 0.7

  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
    ReadFileSpec
    RmSpec
    RunSpec
    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