diff --git a/bin/js2coffee b/bin/js2coffee new file mode 100755 index 00000000..89a6e246 --- /dev/null +++ b/bin/js2coffee @@ -0,0 +1,7 @@ +#!/usr/bin/env coffee + +path = require('path') +fs = require('fs') +lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib') + +require(lib + '/command').run() diff --git a/lib/command.coffee b/lib/command.coffee index 8bd8f7c7..a88032b7 100644 --- a/lib/command.coffee +++ b/lib/command.coffee @@ -1,13 +1,29 @@ js2coffee = require('./js2coffee') -_ = require('underscore') -fs = require('fs') +_ = require('underscore') +fs = require('fs') +path = require('path') -run = -> - files = process.argv.slice(2) - _.each files, (file) -> - contents = fs.readFileSync(file, 'utf-8') - output = js2coffee.build(contents) - console.log output +basename = path.basename +cmd = basename(process.argv[1]) -run() +work = (fname) -> + contents = fs.readFileSync(fname, 'utf-8') + output = js2coffee.build(contents) + console.log output +module.exports = + run: -> + files = process.argv.slice(2) + + try + work '/dev/stdin' + + catch e + if files.length == 0 + console.warn "Usage:" + console.warn " #{cmd} file.js" + console.warn " #{cmd} file.js > output.txt" + console.warn " cat file.js | #{cmd}" + process.exit 1 + + _.each files, (fname) -> work fname