From 817ce8be99b9b7b15bde307af033425e2031be66 Mon Sep 17 00:00:00 2001 From: skyxmao Date: Thu, 13 Jan 2022 20:29:11 +0800 Subject: [PATCH 1/2] fix windows can't download --- download-frp.js | 39 +++++++++++++++++++++++++++++---------- package.json | 3 ++- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/download-frp.js b/download-frp.js index 1afab6f..978c877 100644 --- a/download-frp.js +++ b/download-frp.js @@ -4,15 +4,19 @@ const downloadFile = require("./download-file") const path = require("path") const fs = require("fs") const tar = require("tar") - +const compressing = require("compressing") const getJSON = bent("json", { "User-Agent": "seveibar, frpc-bin (an npm module)", }) const platform = os.platform() -const arch = os.arch() + +let arch = os.arch() let osRelease = null +if(arch == "x64") arch = "amd64"; +else if(arch == "x32") arch = "386"; + switch (platform) { case "win32": osRelease = `windows_${arch}` @@ -74,10 +78,19 @@ module.exports = async () => { // e.g. download something like frpc-ubuntu.tar.xz const downloadPath = path.resolve(__dirname, myAsset.name) - const extractDirPath = path.resolve( - __dirname, - myAsset.name.replace(".tar.gz", "") - ) + let extractDirPath; + if(arch == "amd64" || arch =="386"){ + extractDirPath = path.resolve( + __dirname, + myAsset.name.replace(".zip", "") + ) + }else{ + extractDirPath = path.resolve( + __dirname, + myAsset.name.replace(".tar.gz", "") + ) + } + const frpcPath = path.resolve(extractDirPath, "frpc") const frpsPath = path.resolve(extractDirPath, "frps") @@ -101,10 +114,16 @@ module.exports = async () => { if (!fs.existsSync(extractDirPath)) { console.log(`extracting ${myAsset.name}...`) let tarXPath = downloadPath - await tar.x({ - file: tarXPath, - z: true, - }) + + if(arch == "amd64" || arch =="386"){ + await compressing.zip.uncompress(`${extractDirPath}.zip`,__dirname); + }else{ + await tar.x({ + file: tarXPath, + z: true, + }) + } + fs.unlinkSync(tarXPath) if (!fs.existsSync(frpcPath)) { diff --git a/package.json b/package.json index 4ae9369..8717207 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "decompress-tar": "^4.1.1", "follow-redirects": "^1.13.0", "tar": "^6.0.5", - "tmp": "^0.2.1" + "tmp": "^0.2.1", + "compressing": "^1.5.1" }, "devDependencies": { "@semantic-release/commit-analyzer": "^8.0.1", From c78b9e1a603b28373a639c612f8b5e702df9d458 Mon Sep 17 00:00:00 2001 From: skyxmao Date: Fri, 14 Jan 2022 11:28:09 +0800 Subject: [PATCH 2/2] fix windows can't download again --- download-frp.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/download-frp.js b/download-frp.js index 978c877..9b3ccbb 100644 --- a/download-frp.js +++ b/download-frp.js @@ -11,15 +11,12 @@ const getJSON = bent("json", { const platform = os.platform() -let arch = os.arch() +const arch = os.arch() let osRelease = null -if(arch == "x64") arch = "amd64"; -else if(arch == "x32") arch = "386"; - switch (platform) { case "win32": - osRelease = `windows_${arch}` + osRelease = `windows_${arch.replace("x64", "amd64").replace("x32", "386")}` break case "darwin": osRelease = "darwin_amd64" @@ -79,7 +76,7 @@ module.exports = async () => { const downloadPath = path.resolve(__dirname, myAsset.name) let extractDirPath; - if(arch == "amd64" || arch =="386"){ + if(platform == "win32"){ extractDirPath = path.resolve( __dirname, myAsset.name.replace(".zip", "") @@ -115,7 +112,7 @@ module.exports = async () => { console.log(`extracting ${myAsset.name}...`) let tarXPath = downloadPath - if(arch == "amd64" || arch =="386"){ + if(platform == "win32"){ await compressing.zip.uncompress(`${extractDirPath}.zip`,__dirname); }else{ await tar.x({