Created
March 27, 2010 02:18
-
-
Save matehat/345656 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
handleerr: (fn, arg) ->> | |
if ([err, out]: fn arg, defer)[0] then throw error(err) | |
else resume out | |
safe_readdir: handleerr <- {}, fs.readdir | |
safe_readfile: handleerr <- {}, fs.readFile | |
readFirstFile: (dir) ->> | |
try: | |
files: safe_readdir dir, defer | |
resume safe_readFile files[o], defer | |
catch err | |
puts "Error while reading first file: $err" | |
==> | |
var handleerr, readFirstFile, safe_readdir, safe_readfile; | |
handleerr = function handleerr(fn, arg, _a) { | |
fn(arg, (function(__this) { | |
var __func = function(_b) { | |
var _c, err, out; | |
if ((function() { | |
_c = _b; | |
err = _c[0]; | |
out = _c[1]; | |
return [err, out]; | |
}).call(this)[0]) { | |
throw error(err); | |
} else { | |
return _a(out); | |
} | |
}; | |
return (function() { | |
return __func.apply(__this, arguments); | |
}); | |
})(this)); | |
return null; | |
}; | |
safe_readdir = (function(func, obj, args) { | |
return function() { | |
return func.apply(obj, args.concat(Array.prototype.slice.call(arguments, 0))); | |
}; | |
}(handleerr, {}, [fs.readdir])); | |
safe_readfile = (function(func, obj, args) { | |
return function() { | |
return func.apply(obj, args.concat(Array.prototype.slice.call(arguments, 0))); | |
}; | |
}(handleerr, {}, [fs.readFile])); | |
readFirstFile = function readFirstFile(dir, _a) { | |
try { | |
safe_readdir(dir, (function(__this) { | |
var __func = function() { | |
var files; | |
try { | |
files = (arguments.length > 1 ? Array.prototype.slice(arguments, 0) : arguments[0]); | |
safe_readFile(files[o], (function(__this) { | |
var __func = function(_b) { | |
try { | |
return _a(_b); | |
} catch (err) { | |
return puts("Error while reading first file: " + err); | |
} | |
}; | |
return (function() { | |
return __func.apply(__this, arguments); | |
}); | |
})(this)); | |
return null; | |
} catch (err) { | |
return puts("Error while reading first file: " + err); | |
} | |
}; | |
return (function() { | |
return __func.apply(__this, arguments); | |
}); | |
})(this)); | |
return null; | |
} catch (err) { | |
return puts("Error while reading first file: " + err); | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment