@atao60/fse-cli
Version:
A cli for fs-extra
74 lines (67 loc) • 1.63 kB
JavaScript
import sourceMapSupport from "source-map-support";
sourceMapSupport.install();
import chalk from 'chalk';
const {
red
} = chalk;
import { remove } from 'fs-extra';
import { env } from 'process';
const quietDefault = env.FSE_CLI_QUIET && env.FSE_CLI_QUIET === 'true';
import * as logger from '../logger.js';
const removeDef = {
name: 'remove',
spec: {
'--quiet': Boolean,
'-q': '--quiet'
},
'default': {
quiet: quietDefault
},
options: args => ({
quiet: args['--quiet'] || removeDef.default.quiet,
dir: args._[0] // TODO a list of files or directories?
}),
questions: options => {
const questions = [];
if (!options.dir) {
questions.push({
type: 'input',
name: 'dir',
message: "Please fill in the file or directory to remove",
validate: input => input && input.trim() ? true : "A file or directory is required"
});
}
return questions;
}
};
export const def = removeDef;
/**
* Wrapper for node-fs-extra remove function.
* https://github.com/jprichardson/node-fs-extra/blob/master/docs/remove.md
*/
export function job({
dir,
quiet
}) {
function info(message, ...params) {
logger.info(message, {
quiet,
params
});
}
function error(message, ...params) {
logger.error(message, {
quiet,
params
});
}
info(`Removing directory ${dir} ...`);
remove(dir, err => {
if (err) {
error(`${red.bold('ERROR')} thrown while removing file or directory: `, err);
return;
}
info(`File or directory ${dir} removed.`);
});
}
//# sourceMappingURL=remove.js.map