diff --git a/lib/coffee-script/command.js b/lib/coffee-script/command.js index 10a20d37..b6ef7de8 100644 --- a/lib/coffee-script/command.js +++ b/lib/coffee-script/command.js @@ -427,11 +427,18 @@ }); } }; - return mkdirp(jsDir, function(err) { - if (!err) { + return exists(jsDir, function(itExists) { + var _this = this; + if (itExists) { return compile(); } else { - return exec("mkdir -p " + jsDir, compile); + return mkdirp(jsDir, function(err) { + if (err) { + printLine("Error while creating dir " + jsDir + ": " + err); + exec("mkdir -p " + jsDir); + } + return compile(); + }); } }); }; diff --git a/src/command.coffee b/src/command.coffee index 4c0aabf5..e397cbfa 100644 --- a/src/command.coffee +++ b/src/command.coffee @@ -284,8 +284,10 @@ writeJs = (base, sourcePath, js, jsPath, generatedSourceMap = null) -> fs.writeFile sourceMapPath, generatedSourceMap, (err) -> if err printLine "Could not write source map: #{err.message}" - mkdirp jsDir, (err) -> - unless err then compile() else exec "mkdir -p #{jsDir}", compile + exists jsDir, (itExists) -> + if itExists then compile() else mkdirp jsDir, (err) => + if err then printLine "Error while creating dir #{jsDir}: #{err}"; exec "mkdir -p #{jsDir}" + compile() # Convenience for cleaner setTimeouts. wait = (milliseconds, func) -> setTimeout func, milliseconds