wat-shell

Replace Bash with Ruby, because why not?

wat is a shell built on top of Ruby. It provides easy access to bash commands like cat, git and wget. The output is returned as an array of lines, so you can intermix ruby and a limited form of bash.

Installation

$ gem install wat-shell

Interactive wat shell

To start the wat repl, simply run wat.

$ wat
wat(main):001:0>

This is a version of irb with wat-shell included.

wat(main):001:0> cat(LICENSE).sample
=> "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,"
wat(main):002:0> puts git log --oneline
47ffa5a Rename wat.rb executable to wat
90acaa2 Support "cat LICENSE" by implementing const_missing
4f2701c Execute wat-shell scripts with exe/wat script.rb
a7369e9 Set up wat with interpreter
a7a2f80 Initial commit
=> nil
wat(main):003:0>

Scripting with wat

And of course, what shell wouldn't be complete without the ability to execute files?

If we create a file, test.rb, with this content:

puts du('-sh .').first

We can run it like so:

$ wat test.rb
344K    .

You can't be serious?

I'm not. This is a joke! Please don't use it for anything serious.

How on earth?

I overload method_missing to shell out if a command exists, or to return a string otherwise.

Check out the code. It's short and nasty.