What is oven
============

Oven is basically a utility that allows you to compile coffeescript without
having to have coffeescript or it's related modules on your local machine.  The
client-server architecture can actually be used for multiple things (more on
that later), but you can think of this as a software as a service type system
that you configure.

What do I need
==============

First, a valid python installation that's version 2.6 or 2.7.  This application
has only been tested with 2.7, so 2.6 should work but don't quote me.  Some
features will not work with 3+.  Next, you will need to install coffeescript on
whatever computer you will be using as the server.  Finally, you'll need to
install the server part on your serve (I recommend a vps, but anything you can
contact with a url or ip address will do fine) and then download the client.
That's about all there is to it.

How do I install this thing?
============================

You can pretty much just go to whatever server your using and do pip install
oven.  That will install oven, and the dependencies are listed in requirements.txt.

Then, to get the client, you can either scp the oven_client file from your
server to any client, or just run pip install oven on your client.  The
installation lists the dependecies in the "extras" section, so they aren't
installed automatically.  The client has no extra dependencies that don't come
with a regular python installation.  After that, you should have two commands,
oven and oven_server.  Oven will allow you to compile a file whereas oven_server
will start the server.

Finally, it's optional to include a .ovenrc file.  This file is read from the
directory that you start oven in and is handy if you want to have oven
automatically detect the server to use for compilation.  The structure of an
.ovenrc file is as such:

[servers]
server=http://url.com:port/

Using Oven
==========

Once you've got all the dependencies installed, it's time to start using this
thing.  The oven server is written in flask, so you may want to brush up on that
for configuration options.  Most options are stored in the config.py file
however.  Using the oven client is also pretty simple.  There are a few command
line options (more documentation to follow), but essentially you just type oven
source_file.coffee, and presto, you get a nice shiny source_file.js in the same
directory.  Currently, the server dosen't support multiple people using it at
the same time, so don't try that yet.  This is a planned feature and will be
implemented SOON.

Under the Hood
==============

Under the hood, oven is basically just taking a PUT request with some data,
doing something with it (in this case, saving it to a file and running the
coffeescript compiler on it) and then sending the data back.  The possibility to
modify this to handle basically ANY compiled language (as well as a laundry list
of other services) is pretty high.  If you want to mod this to compile c
programs for example, that's incredibly easy.  This is under the MIT license, so
go nuts.
