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