const os = require('os'); const fs = require("fs"); const osutil = require("../util/osutil") function matchDistName(cur, dists){ const list = [] for (let dist of dists) { if ( cur.curOS === dist.os && cur.curPlatform === dist.platform) { list.push( dist ) } else if ( cur.curOS === dist.os && "cross" === dist.platform) { list.unshift( dist ) } else if ( "cross" === dist.os && cur.curPlatform === dist.platform) { list.unshift( dist ) } } return list } module.exports = async function install(remote, id){ const cur = osutil.cur(); if ( ! id ) { id = "kit" } // 获取本地版本 const localInfo = osutil.choise([ require("../windows/local").getModuleInfo, require("../linux/local").getModuleInfo, ])( id ) $logger.info("local version", localInfo.version) // 确认远程版本文件是否存在 const remoteInfo = await remote.wGetModuleInfo(id) $logger.info("remote latest version", remoteInfo.latest.version) const dists = matchDistName(cur, remoteInfo.latest.dist) const dist = dists.pop() await remote.wDownload( "/modules/" + id + "/" + remoteInfo.latest.version + "/" + cur.curOS + "/" + cur.curPlatform + "/" + dist.filename, localInfo.homeDir + "/" + dist.filename, ) fs.writeFileSync( localInfo.homeDir + "/version", remoteInfo.latest.version ); $logger.info("当前版本", remoteInfo.latest.version ) }