UNPKG

@nuofe/ndk-commit-tool

Version:
91 lines (67 loc) 2.26 kB
"use strict"; 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;