53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
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 )
|
|
|
|
} |