12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/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
|