Module documentation for 1.3.1

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 and system-filepath

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.

Changes

1.4.1

Increase upper bound on doctest

1.4.0

BREAKING CHANGE: Remove unnecessary Maybe from type of single

BREAKING CHANGE: Consolidate searchable and executable

stream{,WithErr} now throws an ExitCode on failure

1.3.6

Build against ghc-8.2

Relax upper bound on optparse-applicative and foldl

1.3.5

Increase upper bound on foldl

1.3.4

Bug fix: cptree now correctly copies files instead of creating directories
of the same name

Increase upper bound on criterion

1.3.3

Bug fix: Change textToLines to behave like Data.Text.splitOn "\n"
instead of Data.Text.unlines
* This fixes weird behavior around handling empty strings. splitOn does
the right thing, but unlines does not. For example, this indirectly
fixes a regression in sed, which would discard empty lines

Bug fix: which/whichAll now behave correctly on Windows

Add new cptree/single utilities

Documentation fixes

1.3.2

Fix bugs in subprocess management

Generalize type of repr to return any type that implements IsString

Add optLine, argLine, and l utilities to simplify working with Lines

1.3.1

find no longer follows symlinks

Increase upper bound on directory

1.3

BREAKING CHANGE: Several utilities now produce and consume Lines instead of
Text The purpose of this change is to fix a very common source of confusion for
new users about which utilities are line-aware
Most of the impact on existing code is just changing the types by
replacing Text with Line in the right places. The change at the
term level should be small (based on the changes to the tutorial examples)

BREAKING CHANGE: Description now wraps a Doc instead of Text

In the most common case where users use string literals this has no effect

New Turtle.Bytes module that provides ByteString variations on subprocess
runners