Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Self-contained implementations of common CLI-utils.
Haskell
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.gitignore
COPYING
README
basename.hs
cat.hs
cf.hs
cp.hs
dirname.hs
echo.hs
false.hs
fold.hs
head.hs
mkdir.hs
nl.hs
pwd.hs
readlink.hs
realpath.hs
rm.hs
rmdir.hs
sleep.hs
sort.hs
tac.hs
tail.hs
tee.hs
touch.hs
true.hs
uniq.hs
wc.hs
yes.hs

README

About coreutilhs
================

coreutilhs is a collection of Haskell versions of useful CLI-programs, 
such as the ones found in GNU coreutils and among the BASH built-ins. 
The idea is to have a set of self-contained Haskell example programs 
that are suitable for tutorials and reading material for Haskell 
newbies. coreutilhs give newbies a taste for how to solve "real" tasks 
in Haskell, and hopefully the utilhs can help motivate newbies.

The current goal is to implement simple self-contained version of some 
subset of GNU coreutils and the BASH built-ins. A program should do 
roughly the same as its coreutils/BASH-equivalent without any options.

There are currently no plans to implement any options, as coreutilhs 
should have very short programs that are easy to follow for newbies. In 
the future, however, options might be considered implemented for fun.

Also note that performance is not a goal right now. If performance gets 
in the way of readability, it is not considered. In the future this 
might change as well, for fun.

The programs are all self-contained little pieces that can be run with 
runhaskell, or compiled with GHC -make *.hs. 


Versioning
==========

coreutilsh follows x.y version numbering.

x means a big milestone has been reached. The current x+1 milestone is 
implementing rudimentary versions of a big chunk of interesting 
programs. The only program missing now is ls. After this milestone has 
been reached, I will decide what I want to do for milestone 2.

y means a big change. This is mostly for when a program has been added, 
or substantially improved.

Minor bug fixes do not lead to releases by themselves. Severe bug fixes 
qualify as a "big change" though. And if there are a bunch of minor bug 
fixes just waiting to be released, and no proper release is on the 
horizon, a y+1 bump may take place.


Licensing and Legalese
=======================

coreutilhs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

coreutilhs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with coreutilhs.  If not, see <http://www.gnu.org/licenses/>.


Contributing To the Project
===========================

Send patches to <alexander@plaimi.net>. Keep the programs short, and 
simple to follow.

/* vim: set textwidth=72 et spell formatoptions=actw2 autoindent: */
Something went wrong with that request. Please try again.