Clam Shell is a simple shell, made to be a testbed for user interface
ideas. The name is sort of an acronym for "CSH-Like-Amiga-Modular
Shell". It originally was going to be a testbed to see how the Amiga's
"Assign" methodology for virtual/physical devices (like dh0:, sys:,
files:, etc.) works in a *nix environment. I tried it out under
another shell, (zsh?) but the project i was putting my code base into was
extremely messy, and I wanted to have full control over the source...
I also had ideas for a modular shell, where modules (libraries, plugins, whatever you want to call them) could be loaded or unloaded at runtime, to expand or contract the functionality of the shell, so that each user can have a set of tools that they like to use, rather than one shell (like CSH) that encompasses everything into one monolithic chunk. Even standard things like "history" would be contained within a plugin module.
When I moved away from this project, I had designed the plugin mechanism, and created the core portion of the shell (argument parsing, fork/exec, redirection, pipes, simple math(!)), but not much else.
This project was written entirely in the NoWeb Literate programming method. The plan was to completely document the entire process so that the source code/documentation can be used to help others write their own shells, and to better understand my process.
I moved off of this project because I had decided to work on the 4P paint program and Z80 coding.