feat: complate upgrade

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
MiaoWoo 2020-05-13 18:42:05 +08:00
parent ac88c15113
commit 430edacd3f

View File

@ -39,6 +39,7 @@ let langMap = {
'download.finish': '§6插件 §b{name} §a下载完毕 开始加载 ...', 'download.finish': '§6插件 §b{name} §a下载完毕 开始加载 ...',
'install.finish': '§6插件 §b{name} §a安装成功!', 'install.finish': '§6插件 §b{name} §a安装成功!',
'update.finish': '§6插件 §b{name} §a更新成功!', 'update.finish': '§6插件 §b{name} §a更新成功!',
'upgrade.confirm': '§6您正在尝试升级 §bMiaoScript §c核心 §6请执行 §b/mpm §aupgrade §cconfirm §6确认执行!',
'deploy.token.not.exists': '§4请先配置发布Token!', 'deploy.token.not.exists': '§4请先配置发布Token!',
'deploy.success': '§6插件 §b{name} §a发布成功! §6服务器返回: §a{msg}', 'deploy.success': '§6插件 §b{name} §a发布成功! §6服务器返回: §a{msg}',
'deploy.fail': '§6插件 §b{name} §c发布失败! §6服务器返回: §c{msg}', 'deploy.fail': '§6插件 §b{name} §c发布失败! §6服务器返回: §c{msg}',
@ -49,7 +50,7 @@ let langMap = {
let fallbackMap = langMap let fallbackMap = langMap
@plugin({ name: 'MiaoScriptPackageManager', prefix: 'PM', version: '1.0.0', author: 'MiaoWoo', source: __filename }) @plugin({ name: 'MiaoScriptPackageManager', prefix: 'PM', version: '1.0.1', author: 'MiaoWoo', source: __filename })
export class MiaoScriptPackageManager extends interfaces.Plugin { export class MiaoScriptPackageManager extends interfaces.Plugin {
@inject(pluginApi.PluginManager) @inject(pluginApi.PluginManager)
private pluginManager: pluginApi.PluginManager; private pluginManager: pluginApi.PluginManager;
@ -85,7 +86,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
} }
main(sender: any, command: string, args: string[]) { main(sender: any, command: string, args: string[]) {
let cmdKey = 'cmd' + args[0] let cmdKey = 'cmd' + (args[0] || 'help')
if (!this[cmdKey]) { if (!this[cmdKey]) {
this.i18n(sender, 'main.command.not.exists', { command: args[0] }) this.i18n(sender, 'main.command.not.exists', { command: args[0] })
this.i18n(sender, 'main.command.help.tip', { command }) this.i18n(sender, 'main.command.help.tip', { command })
@ -109,7 +110,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
} }
cmdlist(sender: any, type: string = 'cloud') { cmdlist(sender: any, type: string = 'cloud') {
if (type == "install") { if (type == "i" || type == "install") {
this.i18n(sender, 'list.install.header') this.i18n(sender, 'list.install.header')
this.pluginManager.getPlugins().forEach((plugin) => { this.pluginManager.getPlugins().forEach((plugin) => {
this.i18n(sender, 'list.install.body', plugin.description); this.i18n(sender, 'list.install.body', plugin.description);
@ -136,7 +137,8 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
} }
cmdupgrade(sender: any, name: string) { cmdupgrade(sender: any, name: string) {
if (name == "system") { if (!name) { return this.i18n(sender, 'upgrade.confirm'); }
if (name == "comfirm") {
let enginePath = fs.path(fs.file(fs.concat(root, 'node_modules', '@ccms'))) let enginePath = fs.path(fs.file(fs.concat(root, 'node_modules', '@ccms')))
if (enginePath.startsWith(root)) { if (enginePath.startsWith(root)) {
base.delete(enginePath); base.delete(enginePath);
@ -195,9 +197,10 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
cmdrun(sender: any, ...args: any[]) { cmdrun(sender: any, ...args: any[]) {
try { try {
var script = args.join(' '); let script = args.join(' ');
this.i18n(sender, 'run.script', { script }) this.i18n(sender, 'run.script', { script })
this.i18n(sender, 'run.result', { result: eval(script) || this.translate.translate('run.noresult') }) let result = eval(script);
this.i18n(sender, 'run.result', { result: result == undefined ? this.translate.translate('run.noresult') : result + '' })
} catch (ex) { } catch (ex) {
this.logger.sender(sender, this.logger.stack(ex)); this.logger.sender(sender, this.logger.stack(ex));
} }
@ -258,11 +261,15 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
this.taskManager.create(() => { this.taskManager.create(() => {
this.i18n(sender, 'download.start', { name }) this.i18n(sender, 'download.start', { name })
this.i18n(sender, 'download.url', { url: this.packageCache[name].url }) this.i18n(sender, 'download.url', { url: this.packageCache[name].url })
let pluginFile = update ? fs.concat(this.pluginFolder, 'update', name + '.js') : fs.concat(this.pluginFolder, name + '.js') let pluginFile = update ? fs.concat(root, this.pluginFolder, 'update', name + '.js') : fs.concat(root, this.pluginFolder, name + '.js')
http.download(this.packageCache[name].url, pluginFile) http.download(this.packageCache[name].url, pluginFile)
this.i18n(sender, 'download.finish', { name }) this.i18n(sender, 'download.finish', { name })
this.pluginManager.loadFromFile(pluginFile) if (!update) {
this.i18n(sender, update ? 'update.finish' : 'install.finish', { name }) this.pluginManager.loadFromFile(fs.file(pluginFile))
this.i18n(sender, 'install.finish', { name })
} else {
this.i18n(sender, 'update.finish', { name })
}
}).async().submit() }).async().submit()
} }
} }