eddie-0.5.1: README.md
# What is eddie?
A command line tool for running Haskell functions over text files.
It is also useful for prototyping Haskell text processing functions
that you will later copy into a program.
# Why is eddie?
This project actually started in response to a code bounty for a
clojure shell scripting tool. That resulted in a specification for the
requested program that had all the features of eddie, and then
some. However, clojure code embedded on the command line looks clumsy,
so the project was shelved.
In haskell, functional expression are much simpler and more
elegant. In particular, in looking for haskell command line tools, I
found <http://www.haskell.org/haskellwiki/Simple_unix_tools>, which
convinced me that the original design would be not merely usable, but
elegant if the expressions were done in haskell. Hence, eddie.
# Why not `ghc -e`?
Eddie adds features to make using it for shell scripting easier:
* When given file arguments, eddie feeds them to your function.
* Eddie can easily add modules to the namespace you use.
* Eddie has options for processing things a line or file at a time.
* Eddie will use binary file IO methods when asked to.
# More information
The best place to start is the manual. That's available in the source
tree in both man format in `eddie.1`, and in html in `eddie.html`.
The latter is also available [online](eddie.html).
# Installation
Install or build with cabal as usual.
# Testing
Test use the haskell shelltestrunner package (can be installed with
cabal). Run `shelltest tests` in the source directory to run
the tests with the currently installed eddie. Use
`shelltest tests -w eddie.hs` to run them using the current
source. Use `shelltest tests -w dist/build/eddie/eddie` to
run them with the compiled binary.
# Documentation
The documenation is built with `pandoc` from
`eddie.md`. Use the `-s` flag, and convert from
pandoc's markdown to your chosen format.