UNPKG

@nuofe/ndk-commit-tool

Version:
103 lines (74 loc) 1.91 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: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;