UNPKG

@cliz/translate-weekly

Version:

Docschina weekly translate tool

42 lines (41 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const cli_1 = require("@cliz/cli"); const config_1 = require("../config"); const core_1 = require("../core"); exports.default = (0, cli_1.defineSubCommand)(createCommand => { return createCommand('translate-weekly release') .action(async ({ logger }) => { logger.info(`1. 切换分支到 ${config_1.default.branch.master} ...`); await cli_1.api.$ `git checkout ${config_1.default.branch.master}`; logger.info('2. 拉取远程更新 ...'); await cli_1.api.$ `git pull origin ${config_1.default.branch.master}`; logger.info('3. 选择发布期数 ...'); const files = await cli_1.api.fs.listDir(config_1.default.docsDir); const docs = await Promise.all(files .filter(e => /\.md$/.test(e.name)) .map(async (file) => { const stat = await cli_1.api.fs.stat(file.absolutePath); const content = await cli_1.api.fs.readFile(file.absolutePath, { encoding: 'utf-8' }); const isTranslated = /> 编辑/.test(content.slice(0, 512)); return { period: +file.name.replace('.md', ''), isTranslated, createdAt: cli_1.doreamon.date(stat.ctimeMs).format('YYYY-MM-DD'), }; })); const periods = docs .sort((a, b) => { return b.period - a.period; }) .map(e => { return { name: `第 ${e.period} 期`, value: e.period, }; }); const period = periods[0].value; const post = await core_1.default.release.getLatestPost(period); await core_1.default.release.release(period, post, logger); }); });