You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
#!/usr/bin/env node |
|
|
|
'use strict'; |
|
|
|
var path = require('path'); |
|
var fs = require('fs'); |
|
|
|
if ( |
|
String(process.env.npm_lifecycle_script).slice(0, 8) !== 'resolve ' |
|
&& ( |
|
!process.argv |
|
|| process.argv.length < 2 |
|
|| (process.argv[1] !== __filename && fs.statSync(process.argv[1]).ino !== fs.statSync(__filename).ino) |
|
|| (process.env._ && path.resolve(process.env._) !== __filename) |
|
) |
|
) { |
|
console.error('Error: `resolve` must be run directly as an executable'); |
|
process.exit(1); |
|
} |
|
|
|
var supportsPreserveSymlinkFlag = require('supports-preserve-symlinks-flag'); |
|
|
|
var preserveSymlinks = false; |
|
for (var i = 2; i < process.argv.length; i += 1) { |
|
if (process.argv[i].slice(0, 2) === '--') { |
|
if (supportsPreserveSymlinkFlag && process.argv[i] === '--preserve-symlinks') { |
|
preserveSymlinks = true; |
|
} else if (process.argv[i].length > 2) { |
|
console.error('Unknown argument ' + process.argv[i].replace(/[=].*$/, '')); |
|
process.exit(2); |
|
} |
|
process.argv.splice(i, 1); |
|
i -= 1; |
|
if (process.argv[i] === '--') { break; } // eslint-disable-line no-restricted-syntax |
|
} |
|
} |
|
|
|
if (process.argv.length < 3) { |
|
console.error('Error: `resolve` expects a specifier'); |
|
process.exit(2); |
|
} |
|
|
|
var resolve = require('../'); |
|
|
|
var result = resolve.sync(process.argv[2], { |
|
basedir: process.cwd(), |
|
preserveSymlinks: preserveSymlinks |
|
}); |
|
|
|
console.log(result);
|
|
|