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