From b0ecb39e9f9c5cd2d29eaba5e56b229ac6251525 Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Fri, 29 Jan 2010 23:41:18 -0500 Subject: [PATCH] made the path handling a little more robust --- lib/coffee_script/coffee-script.js | 11 ++++++++--- lib/coffee_script/runner.js | 1 + src/coffee-script.coffee | 12 +++++++++--- src/runner.coffee | 2 ++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/lib/coffee_script/coffee-script.js b/lib/coffee_script/coffee-script.js index 832be407..e69de174 100644 --- a/lib/coffee_script/coffee-script.js +++ b/lib/coffee_script/coffee-script.js @@ -1,11 +1,15 @@ (function(){ - var sys; + var compiler, path, sys; // Executes the `coffee` Ruby program to convert from CoffeeScript to JavaScript. sys = require('sys'); + path = require('path'); + // The path to the CoffeeScript executable. + compiler = path.normalize(path.dirname(__filename) + '/../../bin/coffee'); + // Compile a string over stdin, with global variables, for the REPL. exports.compile = function compile(code, callback) { var coffee, js; js = ''; - coffee = process.createChildProcess('coffee', ['--eval', '--no-wrap', '--globals']); + coffee = process.createChildProcess(compiler, ['--eval', '--no-wrap', '--globals']); coffee.addListener('output', function(results) { if ((typeof results !== "undefined" && results !== null)) { return js += results; @@ -17,10 +21,11 @@ coffee.write(code); return coffee.close(); }; + // Compile a list of CoffeeScript files on disk. exports.compile_files = function compile_files(paths, callback) { var coffee, js; js = ''; - coffee = process.createChildProcess('coffee', ['--print'].concat(paths)); + coffee = process.createChildProcess(compiler, ['--print'].concat(paths)); coffee.addListener('output', function(results) { if ((typeof results !== "undefined" && results !== null)) { return js += results; diff --git a/lib/coffee_script/runner.js b/lib/coffee_script/runner.js index 4623b2a8..10f6ac9b 100644 --- a/lib/coffee_script/runner.js +++ b/lib/coffee_script/runner.js @@ -1,5 +1,6 @@ (function(){ var coffee, paths; + // Quickie script to compile and run all the files given as arguments. coffee = require('./coffee-script'); process.mixin(require('sys')); paths = process.ARGV; diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index dd0bf89b..c1649364 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -1,10 +1,15 @@ # Executes the `coffee` Ruby program to convert from CoffeeScript to JavaScript. -sys: require('sys') +sys: require('sys') +path: require('path') +# The path to the CoffeeScript executable. +compiler: path.normalize(path.dirname(__filename) + '/../../bin/coffee') + +# Compile a string over stdin, with global variables, for the REPL. exports.compile: (code, callback) -> js: '' - coffee: process.createChildProcess 'coffee', ['--eval', '--no-wrap', '--globals'] + coffee: process.createChildProcess compiler, ['--eval', '--no-wrap', '--globals'] coffee.addListener 'output', (results) -> js += results if results? coffee.addListener 'exit', -> @@ -12,9 +17,10 @@ exports.compile: (code, callback) -> coffee.write(code) coffee.close() +# Compile a list of CoffeeScript files on disk. exports.compile_files: (paths, callback) -> js: '' - coffee: process.createChildProcess 'coffee', ['--print'].concat(paths) + coffee: process.createChildProcess compiler, ['--print'].concat(paths) coffee.addListener 'output', (results) -> js += results if results? coffee.addListener 'exit', -> diff --git a/src/runner.coffee b/src/runner.coffee index 1d73ac64..aed68387 100644 --- a/src/runner.coffee +++ b/src/runner.coffee @@ -1,3 +1,5 @@ +# Quickie script to compile and run all the files given as arguments. + coffee: require './coffee-script' process.mixin require 'sys'