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.
73 lines
1.7 KiB
73 lines
1.7 KiB
6 years ago
|
#!/usr/bin/env node
|
||
|
'use strict';
|
||
|
|
||
|
var argv = require('minimist')(process.argv.slice(2), {
|
||
|
alias: {
|
||
|
c: 'count',
|
||
|
n: 'narrow',
|
||
|
h: 'help',
|
||
|
v: 'version'
|
||
|
},
|
||
|
string: ['_'],
|
||
|
boolean: ['narrow', 'help', 'version']
|
||
|
});
|
||
|
|
||
|
function help() {
|
||
|
var sumUp = require('sum-up');
|
||
|
var yellow = require('chalk').yellow;
|
||
|
|
||
|
var pkg = require('./package.json');
|
||
|
|
||
|
console.log([
|
||
|
sumUp(pkg),
|
||
|
'',
|
||
|
'Usage 1: $ strip-dirs <string> --count(or -c) <number> [--narrow(or -n)]',
|
||
|
'Usage 2: $ echo <string> | strip-dirs --count(or -c) <number> [--narrow(or -n)]',
|
||
|
'',
|
||
|
'Flags:',
|
||
|
yellow('--count, -c') + ' Number of directories to strip from the path',
|
||
|
yellow('--narrow, -n') + ' Disallow surplus count of directory level',
|
||
|
yellow('--version, -v') + ' Print version',
|
||
|
yellow('--help, -h') + ' Print usage information'
|
||
|
].join('\n'));
|
||
|
}
|
||
|
|
||
|
function printErr(msg) {
|
||
|
process.stderr.write(msg + '\n', function() {
|
||
|
process.exit(1);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function run(path) {
|
||
|
if (path) {
|
||
|
if (argv.count !== undefined) {
|
||
|
if (typeof argv.count !== 'number') {
|
||
|
printErr('--count (or -c) option must be a number.');
|
||
|
} else {
|
||
|
var stripDirs = require('./');
|
||
|
try {
|
||
|
console.log(stripDirs(path.trim(), argv.count, {narrow: argv.narrow}));
|
||
|
} catch (e) {
|
||
|
printErr(e.message);
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
printErr('--count (or -c) option required.');
|
||
|
}
|
||
|
} else if (!process.stdin.isTTY) {
|
||
|
console.log('.');
|
||
|
} else {
|
||
|
help();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (argv.version) {
|
||
|
console.log(require('./package.json').version);
|
||
|
} else if (argv.help) {
|
||
|
help();
|
||
|
} else if (process.stdin.isTTY) {
|
||
|
run(argv._[0]);
|
||
|
} else {
|
||
|
require('get-stdin')(run);
|
||
|
}
|