Shellac: A framework for creating shell envinronments

[ bsd3, library, user-interfaces ] [ Propose Tags ]

Shellac is a framework for building read-eval-print style shells. Shells are created by declaratively defining a set of shell commands and an evaluation function. Shellac supports multiple shell backends, including a basic backend which uses only Haskell IO primitives and a full featured readline backend based on the the Haskell readline bindings found in the standard libraries. This library attempts to allow users to write shells at a high level and still enjoy the advanced features that may be available from a powerful line editing package like readline.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.9, 0.9.1, 0.9.5, 0.9.5.1, 0.9.5.2, 0.9.9
Dependencies base (>=1.0), haskell98 (>=1.0), mtl (>=1.0) [details]
License BSD-3-Clause
Author Robert Dockins
Maintainer robdockins AT fastmail DOT fm
Category User Interfaces
Uploaded by RobertDockins at 2007-02-20T03:08:05Z
Distributions
Reverse Dependencies 5 direct, 0 indirect [details]
Downloads 5471 total (18 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for Shellac-0.9

[back to package description]
        Shellac 
-========================-


== What is it?

Shellac is a framework for building read-eval-print style shells.  
Shells are created by declaratively defining a set of shell commands
and an evaluation function.  Shellac supports multiple shell backends,
including a 'basic' backend which uses only Haskell IO primitives and
a full featured 'readline' backend based on the the Haskell readline
bindings found in the standard libraries.

This library attempts to allow users to write shells at a high level
and still enjoy the advanced features that may be available from a
powerful line editing package like readline.


== Why do I care?

Shellac takes care of much the muckety-muck of writing robust, 
feature-full shells so you don't have to.


== How is it licensed?

Shellac is available under a BSD3 license.  See the LICENSE file for
details.

Be aware, however, that the GNU readline library itself is
licensed under the GPL.  If you wish to use the readline bindings,
your project will need to be GPL compatible.

Go here (http://directory.fsf.org/GNU/readline.html) for more information
about the readline library.


== What about portability?

Currently, Shellac is GHC only.  The 0.5 release made significant
efforts toward portability by eliminating dependencies on the GHC
specific features GADTs and STM.  However, it still requires
existential types, multi-parameter type classes, functional
dependencies, preemptive concurrency support and the FFI.  Currently no
Haskell implementation other than GHC supports all these features.

== How do I build it?

Shellac uses a Cabal build system.  The following commands
assume you have a Haskell interpreter in your system
path named 'runhaskell'.  All commands are run from
this directory.

To install for the whole system:

runhaskell Setup.hs configure
runhaskell Setup.hs build
runhaskell Setup.hs install

To install for a single user:

runhaskell Setup.hs configure --prefix=/home/<username>
runhaskell Setup.hs build
runhaskell Setup.hs install --user

To build the API docs:

runhaskell Setup.hs haddock


== Why 'Shellac'?

I had to call it something.  And it starts with 'shell'.


== Who is responsible for this mess?

You can send bug reports, rants and comments to:

  Robert Dockins <robdockins AT fastmail.fm>