Thomas Hintz

The Hintz Chicken Scheme Shell!

It's a shell written in Scheme, that is also a Scheme REPL, with very few dependencies.

Getting.

You can get the latest version on GitHub.

Installing.

The Hintz Shell is built on Chicken Scheme. Currently only Linux and Linux like systems are supported (basically anything that runs Chicken Scheme and can use the Posix utils). To set it up, install Chicken Scheme. Then use chicken-install to install these eggs: shell readline. See the readline egg wiki page if you need help setting up GNU Readline.

Building.

Building is easy. Just run: csc shell.scm

Using.

To run it, just execute the executable...

You can execute commands like you would in a normal bash prompt, except within parenthesis. So to run ls, type (ls) and hit enter (you can easily pass args too: (ps -A)). The shell first tries to run the expression as a command, and if that fails, it tries to execute the expression in eval. An example is below.

Configuring.

It's cool! The Hintz Shell will load ~/.hintz-shellrc on startup. So you can have it execute arbitrary scheme code, and even import extensions and eggs! Below you can see an example.

If you save the above code to ~/.hintz-shellrc, you will see something like the snippet below.

Except that the user and hostname will be green if you are not the root user and it will turn red if you are using the shell as root.

As you can see in the example, you can change the repl prompt by setting the (repl-prompt) parameter. You can use the ansi-escape-sequences egg to easily set colors and otherwise change the prompt.

Status.

It's still pretty new. It doesn't quite do what I want yet. It should allow you to easily go between the system commands and scheme, to allow for awesome scripting, but currently it isn't that easy. I'm working on it though.

Bugs?

Possible? Yes. Likely? No. In the rare chance that you find a bug, please let me know. Just send me an email at t@thintz.com.

License.

This is released under the freebsd license.

Contact.

Any questions or anything else, shoot me an email at t@thintz.com.