mirror of
https://github.com/msojocs/wechat-web-devtools-linux.git
synced 2025-07-22 00:00:04 +08:00
123 lines
3.6 KiB
JavaScript
Executable File
123 lines
3.6 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const net = require('net')
|
|
const { spawn, execSync } = require('child_process');
|
|
const util = require('util');
|
|
const { exit } = require('process');
|
|
|
|
const download = (nwjs) => {
|
|
return new Promise((resolve, reject) => {
|
|
|
|
try {
|
|
fs.mkdirSync(path.resolve(__dirname, "../cache"));
|
|
} catch (error) {
|
|
|
|
}
|
|
|
|
let url = nwjs.url.replace('${version}', nwjs.version).replace('${version}', nwjs.version)
|
|
|
|
|
|
let localPath = path.resolve(__dirname, "../cache", url.split("?")[0].split("/").slice(-1)[0]);
|
|
|
|
if (fs.existsSync(localPath)) {
|
|
console.info(`Cache available ${path.basename(localPath)}`);
|
|
resolve(localPath);
|
|
return;
|
|
}
|
|
console.info(`Downloading ${url}`);
|
|
|
|
const wgetCMD = `wget -c ${url} -O ${localPath}.tmp`
|
|
console.log(`执行 --- ${wgetCMD}`)
|
|
const ls = spawn('wget', ['-c', url, '-O', `${localPath}.tmp`], { stdio: 'inherit' });
|
|
|
|
// ls.stdout.on('data', (data) => {
|
|
// console.log(`stdout: ${data}`);
|
|
// });
|
|
|
|
// ls.stderr.on('data', (data) => {
|
|
// console.log(data.length)
|
|
// process.stderr.write(data);
|
|
// });
|
|
|
|
ls.on('close', (code) => {
|
|
console.log(`child process exited with code ${code}`);
|
|
fs.rename(`${localPath}.tmp`, localPath, err => {
|
|
if (err) reject(err)
|
|
else resolve(localPath)
|
|
})
|
|
});
|
|
|
|
})
|
|
}
|
|
const extract = function (localPath) {
|
|
return new Promise((resolve, reject) => {
|
|
|
|
console.info(`Extracting ${localPath}`);
|
|
|
|
let extractPath = path.resolve(__dirname, `../tmp/${path.basename(localPath)}`);
|
|
|
|
execSync(`rm -rf ${extractPath}`)
|
|
|
|
fs.mkdirSync(extractPath);
|
|
|
|
console.log(`执行 tar -xf ${localPath} -C ${extractPath}`)
|
|
// v参数可输出过程
|
|
const tarP = spawn("tar", ["-xf", localPath, "-C", extractPath], { stdio: 'inherit' });
|
|
tarP.on('error', (err) => {
|
|
reject(err)
|
|
})
|
|
tarP.on('close', (code) => {
|
|
|
|
console.log(`child process close all stdio with code ${code}`);
|
|
|
|
resolve(extractPath);
|
|
})
|
|
})
|
|
}
|
|
|
|
const upgrade = function (extractPath) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
console.info(`Upgrading ${path.basename(extractPath)}`);
|
|
|
|
execSync(`rm -rf ${path.resolve(__dirname, "../nwjs")}`);
|
|
|
|
fs.renameSync(path.resolve(extractPath, fs.readdirSync(extractPath)[0]),
|
|
path.resolve(__dirname, "../nwjs"))
|
|
|
|
execSync(`rm -rf ${extractPath}`);
|
|
|
|
if (fs.existsSync(path.resolve(__dirname, "../node/bin/node"))) {
|
|
execSync(`cd ${path.resolve(__dirname, "../nwjs")} && ln -sr ../node/bin/node node`)
|
|
execSync(`cd ${path.resolve(__dirname, "../nwjs")} && ln -s node node.exe`)
|
|
}
|
|
if (fs.existsSync(path.resolve(__dirname, "../package.nw"))) {
|
|
execSync(`cd ${path.resolve(__dirname, "../nwjs")} && ln -sr ../package.nw package.nw`)
|
|
}
|
|
|
|
resolve();
|
|
|
|
})
|
|
}
|
|
const init = async () => {
|
|
try {
|
|
const args = process.argv.slice(2);
|
|
const nwjs = require("../conf/nwjs.json");
|
|
if(args[0])nwjs.version = args[0]
|
|
|
|
const localPath = await download(nwjs)
|
|
const extractPath = await extract(localPath)
|
|
const result = await upgrade(extractPath)
|
|
|
|
console.info(`Succeeded upgrading nwjs to version ${nwjs.version}`);
|
|
} catch (err) {
|
|
|
|
if (err) {
|
|
console.error('error--->', err);
|
|
}
|
|
exit(-1)
|
|
}
|
|
}
|
|
init() |