@nuofe/ndk-commit-tool
Version:
Commit tool for Nuo FE.
103 lines (74 loc) • 1.91 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:link');
var _default = async options => {
if (!options.root) {
return false;
}
const {
cwd,
package: pkg,
spinner
} = options;
const {
type = '',
url = ''
} = pkg?.repository ?? {};
debug('type: %s', type);
debug('url: %s', url);
if (type !== 'svn') {
return false;
}
if (!url) {
spinner.stop();
_ndkLogger.default.logError('[i] 没有 Svn 库地址,请检查 package.json 文件!');
_ndkLogger.default.logEmpty();
process.exit(1);
}
spinner.stop();
const {
result
} = await prompt({
type: 'confirm',
name: 'result',
message: '你是否要关联 Svn 库?',
default: true
});
_ndkLogger.default.logEmpty();
if (result) {
spinner.start();
} else {
_ndkLogger.default.logWarning('[i] 请先关联 Svn 库!');
_ndkLogger.default.logEmpty();
process.exit();
}
const {
status,
stderr
} = await _ndkCli.default.spawn('svn', ['checkout', '--force', url, '.'], {
cwd
});
if (status !== 0) {
spinner.stop();
console.error(stderr);
_ndkLogger.default.logEmpty();
_ndkLogger.default.logError(`[i] 关联 Svn 库 ${url} 失败!`);
_ndkLogger.default.logEmpty();
process.exit(1);
}
spinner.succeed(`关联 Svn 库 ${url} 成功。`);
_ndkLogger.default.logEmpty();
spinner.start();
return true;
};
exports.default = _default;