mithril-vndb/ospec/bin/ospec

42 lines
1.1 KiB
JavaScript
Executable file

#!/usr/bin/env node
"use strict"
var o = require("../ospec")
var path = require("path")
var glob = require("glob")
function parseArgs(argv) {
argv = ["--globs"].concat(argv.slice(2))
var args = {}
var name
argv.forEach(function(arg) {
if (/^--/.test(arg)) {
name = arg.substr(2)
args[name] = args[name] || []
} else {
args[name].push(arg)
}
})
return args
}
var args = parseArgs(process.argv)
var globList = args.globs && args.globs.length ? args.globs : ["**/tests/**/*.js"]
var ignore = ["**/node_modules/**"].concat(args.ignore||[])
var cwd = process.cwd()
args.require && args.require.forEach(function(module) {
module && require(require.resolve(module, { basedir: cwd }))
})
var pending = globList.length
globList.forEach(function(globPattern) {
glob(globPattern, {ignore: ignore})
.on("match", function(fileName) { require(path.join(cwd, fileName)) }) // eslint-disable-line global-require
.on("error", function(e) { console.error(e) })
.on("end", function() { if (--pending === 0) o.run()})
});
process.on("unhandledRejection", function(e) { console.error("Uncaught (in promise) " + e.stack) })