--- /dev/null
+module.exports = fileCompletion
+
+var mkdir = require("mkdirp")
+ , path = require("path")
+ , glob = require("glob")
+
+function fileCompletion (root, req, depth, cb) {
+ if (typeof cb !== "function") cb = depth, depth = Infinity
+ mkdir(root, function (er) {
+ if (er) return cb(er)
+
+ // can be either exactly the req, or a descendent
+ var pattern = root + "/{" + req + "," + req + "/**/*}"
+ , opts = { mark: true, dot: true, maxDepth: depth }
+ glob(pattern, opts, function (er, files) {
+ if (er) return cb(er)
+ return cb(null, (files || []).map(function (f) {
+ var tail = f.substr(root.length + 1).replace(/^\//, "")
+ return path.join(req, tail)
+ }))
+ })
+ })
+}