Name: turtle
Version: 1.6.2
x-revision: 3
Cabal-Version: >=1.10
Build-Type: Simple
License: BSD3
License-File: LICENSE
Copyright: 2015 Gabriella Gonzalez
Author: Gabriella Gonzalez
Maintainer: GenuineGabriella@gmail.com
Bug-Reports: https://github.com/Gabriella439/turtle/issues
Synopsis: Shell programming, Haskell-style
Description: @turtle@ is a reimplementation of the Unix command line environment
    in Haskell so that you can use Haskell as both a shell and a scripting
    language.
    .
    Features include:
    .
    * Batteries included: Command an extended suite of predefined utilities
    .
    * Interoperability: You can still run external shell commands
    .
    * Portability: Works on Windows, OS X, and Linux
    .
    * Exception safety: Safely acquire and release resources
    .
    * Streaming: Transform or fold command output in constant space
    .
    * Patterns: Use typed regular expressions that can parse structured values
    .
    * Formatting: Type-safe @printf@-style text formatting
    .
    * Modern: Supports @text@
    .
    Read "Turtle.Tutorial" for a detailed tutorial or "Turtle.Prelude" for a
    quick-start guide
    .
    @turtle@ is designed to be beginner-friendly, but as a result lacks certain
    features, like tracing commands.  If you feel comfortable using @turtle@
    then you should also check out the @Shelly@ library which provides similar
    functionality.
Category: System

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
  GHC == 8.0.2

Extra-Source-Files:
    CHANGELOG.md

Source-Repository head
    Type: git
    Location: https://github.com/Gabriella439/turtle

Flag new-deps
    Description: Use new versions of ansi-wl-pprint and optparse-applicative
    Manual: False
    Default: True

Library
    HS-Source-Dirs: src
    Build-Depends:
        -- 2021-09-07: Turtle.Prelude uses GHC-8.0 features, so base >= 4.9
        base                 >= 4.9     && < 5   ,
        async                >= 2.0.0.0 && < 2.3 ,
        bytestring           >= 0.9.1.8 && < 0.13,
        clock                >= 0.4.1.2 && < 0.9 ,
        containers           >= 0.5.0.0 && < 0.8 ,
        directory            >= 1.3.1.0 && < 1.4 ,
        exceptions           >= 0.4     && < 0.11,
        filepath             >= 1.4.1.2 && < 1.6 ,
        foldl                >= 1.1     && < 1.5 ,
        hostname                           < 1.1 ,
        managed              >= 1.0.3   && < 1.1 ,
        process              >= 1.0.1.1 && < 1.7 ,
        stm                                < 2.6 ,
        streaming-commons                  < 0.3 ,
        temporary                          < 1.4 ,
        text                 >= 1.0.0   && < 2.2 ,
        time                               < 1.15,
        transformers         >= 0.2.0.0 && < 0.7 ,
        optional-args        >= 1.0     && < 2.0 ,
        unix-compat          >= 0.4     && < 0.8
    if os(windows)
        Build-Depends: Win32 >= 2.12
    else
        Build-Depends: unix  >= 2.5.1.0 && < 2.9

    -- A possible Cabal issue makes it try an old version of ansi-wl-pprint
    -- even though a newer would work.
    -- See discussion in https://github.com/Gabriella439/turtle/pull/446
    if flag(new-deps)
        Build-Depends: ansi-wl-pprint       >= 1.0     && < 1.1 ,
                       optparse-applicative >= 0.18    && < 0.19
    else
        Build-Depends: ansi-wl-pprint       >= 0.6     && < 1.0 ,
                       optparse-applicative >= 0.16    && < 0.18

    Exposed-Modules:
        Turtle,
        Turtle.Bytes,
        Turtle.Format,
        Turtle.Pattern,
        Turtle.Shell,
        Turtle.Options,
        Turtle.Line,
        Turtle.Prelude,
        Turtle.Tutorial
    Other-Modules:
        Turtle.Internal
    GHC-Options: -Wall
    Default-Language: Haskell2010

test-suite tests
    Type: exitcode-stdio-1.0
    HS-Source-Dirs: test
    Main-Is: Main.hs
    GHC-Options: -Wall
    Default-Language: Haskell2010
    Build-Depends:
        base    >= 4   && < 5   ,
        doctest >= 0.7

test-suite regression-broken-pipe
    Type: exitcode-stdio-1.0
    HS-Source-Dirs: test
    Main-Is: RegressionBrokenPipe.hs
    GHC-Options: -Wall -threaded
    Default-Language: Haskell2010
    Build-Depends:
        base   >= 4 && < 5,
        turtle

test-suite regression-masking-exception
    Type: exitcode-stdio-1.0
    HS-Source-Dirs: test
    Main-Is: RegressionMaskingException.hs
    GHC-Options: -Wall -threaded
    Default-Language: Haskell2010
    Build-Depends:
        base   >= 4 && < 5,
        turtle

test-suite cptree
    Type: exitcode-stdio-1.0
    HS-Source-Dirs: test
    Main-Is: cptree.hs
    GHC-Options: -Wall -threaded
    Default-Language: Haskell2010
    Build-Depends:
        base   >= 4 && < 5,
        temporary,
        filepath >= 0.4,
        turtle

test-suite system-filepath-tests
    Type: exitcode-stdio-1.0
    HS-Source-Dirs: test
    Main-Is: system-filepath.hs
    GHC-Options: -Wall -threaded
    Default-Language: Haskell2010
    Build-Depends:
        base,
        filepath,
        tasty >=1.4 && <1.6,
        tasty-hunit >=0.10 && <0.11,
        turtle

benchmark bench
    Type: exitcode-stdio-1.0
    HS-Source-Dirs: bench
    Main-Is: Main.hs
    GHC-Options: -O2 -Wall -threaded
    Default-Language: Haskell2010
    Build-Depends:
        base        >= 4     && < 5  ,
        tasty-bench >= 0.3.1         ,
        text                    < 2.2,
        turtle