   ['-i', '--interactive',   'run an interactive CoffeeScript REPL']
   ['-r', '--run',           'compile and run a CoffeeScript']
   ['-o', '--output [DIR]',  'set the directory for compiled JavaScript']
-  # ['-w', '--watch',         'watch scripts for changes, and recompile']
+  ['-w', '--watch',         'watch scripts for changes, and recompile']
   ['-p', '--print',         'print the compiled JavaScript to stdout']
   ['-l', '--lint',          'pipe the compiled JavaScript through JSLint']
   ['-e', '--eval',          'compile a string from the command line']


  paths: oparser.parse(process.ARGV)
  sources: paths[2...paths.length]

# or JSLint results.
compile_scripts: ->
  return unless source: sources.shift()
  fs.cat(source).addCallback (code) ->
    compile_script(source, code)
    compile_scripts()

# Compile a single source script, containing the given code, according to the
# requested options. Both compile_scripts and watch_scripts share this method.
compile_script: (source, code) ->
  opts: options
  try
    if      opts.tokens   then coffee.print_tokens coffee.tokenize code
    else if opts.tree     then puts coffee.tree(code).toString()
    else
