UNPKG

@conecli/cone-cli

Version:

松果编辑器命令行工具

46 lines (40 loc) 1.74 kB
'use strict'; const {homedir} = require('os') const config = require('../configs/conecli.json') const {TEMPLATE_DIR} = require('../utils/const') const fs = require('fs-extra'); const path = require('path') const mkdirp = require('mkdirp') const {getWorkspacePath, downloadRepoByConfig, copySync} = require('../utils/util') const logger = require('../utils/logger') const chalk = require('chalk') /** * 添加扩展点 * @param extentionName * @param extentionKey 此角色扩展点在配置中的key */ module.exports = async function addExtentionAction(extentionName, extentionKey = 'extentions') { const extInfo = config[extentionKey] && config[extentionKey][extentionName] if (!extInfo) { logger.fatal(`no extension named ${extentionName} registered, or please use command "cone update" to upgrade`) } console.log('add extention: ', chalk.blue(extentionName) + ' - ' + extInfo.description); let workspace = getWorkspacePath() if (workspace) { // 开发者用户目录 const userPath = path.join(workspace, 'user') if (!fs.existsSync(userPath)) { mkdirp.sync(userPath) } // 扩展点模板临时存放目录 const extentionTmp = path.join(homedir(), TEMPLATE_DIR, extentionKey, extentionName) await downloadRepoByConfig(extentionName, extInfo, extentionTmp).catch(err=>{ logger.fatal(err.message) }) const toExtentionPath = path.join(userPath, extentionName) copySync(extentionTmp, toExtentionPath) logger.success(chalk.green(`extention ${chalk.blue(extentionName)} add completed`)) } else { logger.fatal(`please enter work directory to execute the commands`) } }