@nuofe/ndk-commit-tool
Version:
Commit tool for Nuo FE.
91 lines (67 loc) • 2.26 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _ndkCli = _interopRequireDefault(require("@nuofe/ndk-cli"));
var _ndkLogger = _interopRequireDefault(require("@nuofe/ndk-logger"));
var _inquirer = _interopRequireDefault(require("inquirer"));
const {
prompt
} = _inquirer.default;
const debug = _ndkLogger.default.debug('ndk-commit-tool:svn:check-missing-files');
var _default = async (options, svnStatus) => {
const {
cwd,
spinner
} = options;
if (svnStatus) {
const diffFiles = svnStatus.split(/\r\n|\r|\n/);
debug('diffFiles: %s', diffFiles);
const missingFiles = diffFiles.filter(item => /^!\s+.+$/.test(item)).map(item => item.replace(/^!\s+/, ''));
debug('missingFiles: %s', missingFiles);
if (missingFiles.length > 0) {
spinner.stop();
_ndkLogger.default.logTip('以下文件不存在:');
_ndkLogger.default.logText(missingFiles.join('\n'));
_ndkLogger.default.logEmpty();
const {
result
} = await prompt({
type: 'confirm',
name: 'result',
message: '你是否要从 Svn 库中删除?',
default: true
});
_ndkLogger.default.logEmpty();
if (result) {
spinner.start();
await missingFiles.reduce(async (promise, missingfile) => {
await promise;
const {
status,
stderr
} = await _ndkCli.default.spawn('svn', ['delete', '--force', missingfile], {
cwd
});
debug('status: %s', status);
debug('stderr: %s', stderr);
if (status !== 0) {
spinner.stop();
console.error(stderr);
_ndkLogger.default.logEmpty();
_ndkLogger.default.logError('[i] 删除文件失败!');
_ndkLogger.default.logEmpty();
process.exit(1);
}
}, Promise.resolve());
} else {
_ndkLogger.default.logWarning('[i] 请先还原被删除的文件!');
_ndkLogger.default.logEmpty();
process.exit();
}
}
}
};
exports.default = _default;