eddie
Check-in [f358b78a2c]
Not logged in
Public Repositories
mwm's Repositories

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Finally got the README sorted out
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: f358b78a2cfdbb8a2596de33bee5cfcf88f3ec97
User & Date: mwm 2015-03-19 07:17:04.560
Context
2015-03-19
07:22
Fix the link in the README. check-in: 98bcb1ad7f user: mwm tags: trunk
07:17
Finally got the README sorted out check-in: f358b78a2c user: mwm tags: trunk
2015-03-18
03:35
Try and fix wiki links in markdown README. Again. check-in: 7e52670589 user: mwm tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to README.md.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# What is eddie?

A command line tool for running Haskell functions over text files.

You can see a collection of a variety of filter types in
[unix commands](/doc/ckout/wiki?name=UnixCommands), or a collection of the ways
to implement the various meanings of
["reversing" a file](/doc/ckout/wiki?name=ReversingAFile).

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




<
<
<
<
<







1
2
3
4





5
6
7
8
9
10
11
# 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  *  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

There's an online [manual page](/doc/ckout/eddie.html) as well as
`eddie.1` (man format) in the source tree. The online manual
page formatting suffers from there being more than one version of
markdown.


# Installation

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







|
|
<
<
|



|







26
27
28
29
30
31
32
33
34


35
36
37
38
39
40
41
42
43
44
45
46
  *  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](/doc/ckout/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
Deleted README.wiki.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<h2>What is eddie?</h2>

A command line tool for running Haskell functions over text files.

You can see a collection of a variety of filter types in [UnixCommands],
or a collection of the ways to implement the various meanings of
[ReversingAFile|"reversing" a file].

It is also useful for prototyping Haskell text processing functions
that you will later copy into a program.

<h2>Why is eddie?</h2>

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.

<h2>Why not <kbd>ghc -e</kbd>?</h2>

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.

<h2>More information</h2>

There's an online [/doc/tip/eddie.html|manual page] as well as
<kbd>eddie.1</kbd> (man format) in the source tree. The online manual
page formatting suffers from there being more than one version of
markdown.


<h2>Installation</h2>

Build with cabal as usual.

<h2>Testing</h2>

Test use the haskell shelltestrunner package (can be installed with
cabal). Run <kbd>shelltest tests</kbd> in the source directory to run
the tests with the currently installed eddie. Use
<kbd>shelltest tests -w eddie.hs</kbd> to run them using the current
source. Use <kbd>shelltest tests -w dist/build/eddie/eddie</kbd> to
run them with the compiled binary.

<h2>Documentation</h2>

The documenation is built with <kbd>pandoc</kbd> from
<kbd>eddie.md</kbd>.  Use the <kbd>-s</kbd> flag, and convert from
pandoc's markdown to your chosen format.
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
























































































































Changes to eddie.1.
119
120
121
122
123
124
125

126
127
128
129

130
131
132
0.
If there are problems with the options, such that the expression is
never evaluated, then eddie will exit with a status of 1.
If haskell returns an error \- probably a compilation problem \- then
eddie will exit with the status of 2.
.SH SEE ALSO
.PP

The wiki at <http://code.google.com/p/eddie/w/list> for examples.
.SH BUGS
.PP
See the issues list at <http://code.google.com/p/eddie/issues/list>.

.SH AUTHOR
.PP
Mike Meyer <mwm@mired.org>







>
|


|
>



119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
0.
If there are problems with the options, such that the expression is
never evaluated, then eddie will exit with a status of 1.
If haskell returns an error \- probably a compilation problem \- then
eddie will exit with the status of 2.
.SH SEE ALSO
.PP
The wiki at <https://chiselapp.com/user/mwm/repository/eddie/wcontent>
for examples.
.SH BUGS
.PP
See the issues list at
<https://chiselapp.com/user/mwm/repository/eddie/rptview?rn=1>.
.SH AUTHOR
.PP
Mike Meyer <mwm@mired.org>
Changes to eddie.html.
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<dt><strong>--Modules</strong></dt>
<dd>The <strong>--Modules</strong> <em>name</em>,<em>as</em> (short form <strong>-M</strong> <em>name</em>,<em>as</em>) option imports the <em>name</em> module using a qualified import with an as clause, with <em>as</em> being the value for the as clause.
</dd>
</dl>
<h1 id="diagnostics">DIAGNOSTICS</h1>
<p>If the command runs with no problems, eddie will exit with a status of 0. If there are problems with the options, such that the expression is never evaluated, then eddie will exit with a status of 1. If haskell returns an error - probably a compilation problem - then eddie will exit with the status of 2.</p>
<h1 id="see-also">SEE ALSO</h1>
<p>The wiki at <a href="http://code.google.com/p/eddie/w/list" class="uri">http://code.google.com/p/eddie/w/list</a> for examples.</p>
<h1 id="bugs">BUGS</h1>
<p>See the issues list at <a href="http://code.google.com/p/eddie/issues/list" class="uri">http://code.google.com/p/eddie/issues/list</a>.</p>
<h1 id="author">AUTHOR</h1>
<p>Mike Meyer <script type="text/javascript">
<!--
h='&#x6d;&#x69;&#114;&#x65;&#100;&#46;&#x6f;&#114;&#x67;';a='&#64;';n='&#x6d;&#x77;&#x6d;';e=n+a+h;
document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\/'+'a'+'>');
// -->
</script><noscript>&#x6d;&#x77;&#x6d;&#32;&#x61;&#116;&#32;&#x6d;&#x69;&#114;&#x65;&#100;&#32;&#100;&#x6f;&#116;&#32;&#x6f;&#114;&#x67;</noscript></p>







|

|







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<dt><strong>--Modules</strong></dt>
<dd>The <strong>--Modules</strong> <em>name</em>,<em>as</em> (short form <strong>-M</strong> <em>name</em>,<em>as</em>) option imports the <em>name</em> module using a qualified import with an as clause, with <em>as</em> being the value for the as clause.
</dd>
</dl>
<h1 id="diagnostics">DIAGNOSTICS</h1>
<p>If the command runs with no problems, eddie will exit with a status of 0. If there are problems with the options, such that the expression is never evaluated, then eddie will exit with a status of 1. If haskell returns an error - probably a compilation problem - then eddie will exit with the status of 2.</p>
<h1 id="see-also">SEE ALSO</h1>
<p>The wiki at <a href="https://chiselapp.com/user/mwm/repository/eddie/wcontent" class="uri">https://chiselapp.com/user/mwm/repository/eddie/wcontent</a> for examples.</p>
<h1 id="bugs">BUGS</h1>
<p>See the issues list at <a href="https://chiselapp.com/user/mwm/repository/eddie/rptview?rn=1" class="uri">https://chiselapp.com/user/mwm/repository/eddie/rptview?rn=1</a>.</p>
<h1 id="author">AUTHOR</h1>
<p>Mike Meyer <script type="text/javascript">
<!--
h='&#x6d;&#x69;&#114;&#x65;&#100;&#46;&#x6f;&#114;&#x67;';a='&#64;';n='&#x6d;&#x77;&#x6d;';e=n+a+h;
document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\/'+'a'+'>');
// -->
</script><noscript>&#x6d;&#x77;&#x6d;&#32;&#x61;&#116;&#32;&#x6d;&#x69;&#114;&#x65;&#100;&#32;&#100;&#x6f;&#116;&#32;&#x6f;&#114;&#x67;</noscript></p>