[Haskell-cafe] develop new Haskell shell?

Marc Weber marco-oweber at gmx.de
Tue May 9 18:19:18 EDT 2006


Who wants to try devloping a new shell with me?

The main goals: try adding some haskell scriting instead of bash/zsh,

history dependend on 
a) executing program
b) current dir
c) last commands
d) workspaces
which should mean that the shell should save at least the last 10
commands of a,b,c,d.

So you can do
emerge (lookup parameters in history) even if you haven't used emerge
for ages.. :) Nice, isn't it?

d) Workspaces should mean:
You can define some kind of workspace like
workspace=haskellproject, wash, apache 
to add these tags together with the commands to the history..
So when working only in the "wash" workspace you can easily find those
commands.. Perhpas it's even useful to attach commands or even scripts
to those workspaces?

eg the startApache script may be attached to
admin, apache, ...,
the cd /etc/init.d command only to admin..

I also would like to have some advanced kind of directory matching,
defining aliases for directories.

eg just type
cd /usl to get a  list of diretories looking like this:
/usl ?

Using tab and bash is nice but it might be done better?

Any suggestions?

One would have to think about how to run processes in background and so
on ...

adding files as parameters the way it's possible in mc ( select them and
add them to the command line )

perhaps even implement cp/mv/ ... for virtual file systems like zip
files/ ftp/ ... ?

and last but not least:
on windows add all Programs beeing found in Start-> Programs to the path
list... I wish I could just do word/ Enterprise Manager at a shell and
not searching for the menu entries over and over again.. ;)
I know I can add them the to the path.. but that would be some work,
too.. and not desirable in any case.

I could imagine adding a small prefix to each cmd eg.

eb (execute bash cmd)
ez (execute zsh cmd)
r (remove file list)
efs (execute from windows start menu)
bg <cmd> run in background like bashs & feature.

Perhaps even introduce some new syntax ?
or use ghci or hugs with a preprocessor to translate these commands to
haskell commands?

What do you think?

Marc Weber

More information about the Haskell-Cafe mailing list