#!/usr/bin/env node var resolveModule = require('resolve').sync; var resolvePath = require('path').resolve; var parseOpts = require('minimist'); var glob = require('glob'); var opts = parseOpts(process.argv.slice(2), { alias: { r: 'require' }, string: 'require', default: { r: [] } }); var cwd = process.cwd(); if (typeof opts.require === 'string') { opts.require = [opts.require]; } opts.require.forEach(function (module) { if (module) { /* This check ensures we ignore `-r ""`, trailing `-r`, or * other silly things the user might (inadvertently) be doing. */ require(resolveModule(module, { basedir: cwd })); } }); opts._.forEach(function (arg) { // If glob does not match, `files` will be an empty array. // Note: `glob.sync` may throw an error and crash the node process. var files = glob.sync(arg); if (!Array.isArray(files)) { throw new TypeError('unknown error: glob.sync did not return an array or throw. Please report this.'); } files.forEach(function (file) { require(resolvePath(cwd, file)); }); }); // vim: ft=javascript