add support for linux
This commit is contained in:
parent
d67bf182c5
commit
2b08532e7a
|
@ -0,0 +1,47 @@
|
||||||
|
const fs = require("fs")
|
||||||
|
const fsAsync = fs.promises
|
||||||
|
const yazl = require("yazl")
|
||||||
|
const __path = require("path")
|
||||||
|
|
||||||
|
fs.unlinkSync(__path.join(__dirname, "builds", "lightcord-win32-ia32.zip"))
|
||||||
|
fs.unlinkSync(__path.join(__dirname, "builds", "lightcord-linux-x64.zip"))
|
||||||
|
|
||||||
|
const winZip = new yazl.ZipFile()
|
||||||
|
winZip.outputStream.pipe(fs.createWriteStream(__path.join(__dirname, "builds", "lightcord-win32-ia32.zip")))
|
||||||
|
|
||||||
|
const linuxZip = new yazl.ZipFile()
|
||||||
|
linuxZip.outputStream.pipe(fs.createWriteStream(__path.join(__dirname, "builds", "lightcord-linux-x64.zip")))
|
||||||
|
|
||||||
|
async function processNextDir(dir, zip, bpath, platform){
|
||||||
|
if(!bpath)bpath = dir
|
||||||
|
if(dir.replace(bpath, ""))zip.addEmptyDirectory(dir.replace(bpath, "").slice(1))
|
||||||
|
await Promise.all(fs.readdirSync(dir, {withFileTypes: true})
|
||||||
|
.map(async file => {
|
||||||
|
let path = __path.join(dir, file.name)
|
||||||
|
if(file.isDirectory()){
|
||||||
|
return await processNextDir(path, zip, bpath)
|
||||||
|
}else if(file.isFile()){
|
||||||
|
console.log(file.name)
|
||||||
|
if((file.name.endsWith("_linux.node") && platform === "win") || (file.name.endsWith(".node") && !file.name.endsWith("_linux.node") && platform === "lin")){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let stat = fs.statSync(path)
|
||||||
|
zip.addBuffer(await fsAsync.readFile(path), __path.relative(bpath, path), {
|
||||||
|
mode: stat.mode,
|
||||||
|
mtime: stat.mtime
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
processNextDir(__path.join(__dirname, "builds", "lightcord-win32-ia32"), winZip, undefined, "win")
|
||||||
|
.then(() => {
|
||||||
|
console.log(`Zipped win32.`)
|
||||||
|
winZip.end()
|
||||||
|
})
|
||||||
|
|
||||||
|
processNextDir(__path.join(__dirname, "builds", "lightcord-linux-x64"), linuxZip, undefined, "lin")
|
||||||
|
.then(() => {
|
||||||
|
console.log(`Zipped linux.`)
|
||||||
|
linuxZip.end()
|
||||||
|
})
|
Binary file not shown.
|
@ -1,5 +1,9 @@
|
||||||
const EventEmitter = require('events');
|
const EventEmitter = require('events');
|
||||||
const {CloudSync: CloudSyncNative} = require('./discord_cloudsync.node');
|
let addon = './discord_cloudsync.node'
|
||||||
|
if(process.platform === "linux"){
|
||||||
|
addon = './discord_cloudsync_linux.node'
|
||||||
|
}
|
||||||
|
const {CloudSync: CloudSyncNative} = require(addon);
|
||||||
|
|
||||||
function makeCallback(resolve, reject) {
|
function makeCallback(resolve, reject) {
|
||||||
return (err, result) => {
|
return (err, result) => {
|
||||||
|
|
|
@ -87,6 +87,10 @@ if(process.platform === "win32"){
|
||||||
useShim = !!use
|
useShim = !!use
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
module.exports = {
|
||||||
|
useShim(){}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let settingStore
|
let settingStore
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
module.exports = require('./discord_dispatch.node');
|
module.exports = require(process.platform === "linux" ? './discord_dispatch_linux.node' : './discord_dispatch.node');
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
module.exports = require('./discord_erlpack.node');
|
module.exports = require(process.platform === "linux" ? './discord_erlpack_linux.node' : './discord_erlpack.node');
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
module.exports = require('./discord_game_utils.node');
|
module.exports = require(process.platform === "linux" ? './discord_game_utils_linux.node' : './discord_game_utils.node');
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
module.exports = require('./discord_modules.node');
|
module.exports = require(process.platform === "linux" ? './discord_modules_linux.node' : './discord_modules.node');
|
||||||
|
|
Binary file not shown.
|
@ -1,7 +1,12 @@
|
||||||
const execa = require('execa');
|
const execa = require('execa');
|
||||||
const superagent = require('superagent');
|
const superagent = require('superagent');
|
||||||
|
|
||||||
module.exports = require('./discord_utils.node');
|
let addon = './discord_utils.node'
|
||||||
|
if(process.platform === "linux"){
|
||||||
|
addon = './discord_utils_linux.node'
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = require(addon);
|
||||||
module.exports.clearCandidateGamesCallback = module.exports.setCandidateGamesCallback;
|
module.exports.clearCandidateGamesCallback = module.exports.setCandidateGamesCallback;
|
||||||
|
|
||||||
function parseNvidiaSmiOutput(result) {
|
function parseNvidiaSmiOutput(result) {
|
||||||
|
|
Binary file not shown.
|
@ -1,4 +1,4 @@
|
||||||
const VoiceEngine = require('./discord_voice.node');
|
const VoiceEngine = require(process.platform === "linux" ? './discord_voice_linux.node' : './discord_voice.node');
|
||||||
const ChildProcess = require('child_process');
|
const ChildProcess = require('child_process');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const yargs = require('yargs');
|
const yargs = require('yargs');
|
||||||
|
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "lightcord",
|
"name": "lightcord",
|
||||||
"version": "0.1.0",
|
"version": "0.1.1",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -403,9 +403,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"electron": {
|
"electron": {
|
||||||
"version": "8.3.0",
|
"version": "8.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/electron/-/electron-8.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/electron/-/electron-8.4.0.tgz",
|
||||||
"integrity": "sha512-XRjiIJICZCgUr2vKSUI2PTkfP0gPFqCtqJUaTJSfCTuE3nTrxBKOUNeRMuCzEqspKkpFQU3SB3MdbMSHmZARlQ==",
|
"integrity": "sha512-SpgyccM5rjDJSGcpQjiviUBT44fZlSyhcjy8RpKSnAad+co4xY1vYj6T25U1CfSk0PH/dhvcp63P2sdXHCwq/Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@electron/get": "^1.0.1",
|
"@electron/get": "^1.0.1",
|
||||||
|
@ -1399,6 +1399,15 @@
|
||||||
"buffer-crc32": "~0.2.3",
|
"buffer-crc32": "~0.2.3",
|
||||||
"fd-slicer": "~1.1.0"
|
"fd-slicer": "~1.1.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"yazl": {
|
||||||
|
"version": "2.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
|
||||||
|
"integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"buffer-crc32": "~0.2.3"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
15
package.json
15
package.json
|
@ -7,10 +7,14 @@
|
||||||
"compile": "node compile.js",
|
"compile": "node compile.js",
|
||||||
"test": "npm run compile && electron .",
|
"test": "npm run compile && electron .",
|
||||||
"run": "electron .",
|
"run": "electron .",
|
||||||
"build": "npm run build:minify && npm run build:electron",
|
"build": "npm run build:minify && npm run build:electron && npm run build:after",
|
||||||
"build:electron": "electron-packager ./distApp --ignore=\"(distApp|builds|\\.ts)\" --arch=ia32 --win32metadata.ProductName=\"Lightcord\" --win32metadata.CompanyName=\"Lightcord\" --protocol=discord --platform=\"win32,linux\" --out=builds --icon=app.ico --executable-name=\"Lightcord\" --asar.unpack=*.{node,dll} --overwrite",
|
"build:electron": "npm run build:electron_win && npm run build:electron_linux",
|
||||||
|
"build:electron_win": "electron-packager ./distApp --ignore=\"(distApp|builds|\\.ts)\" --arch=ia32 --win32metadata.ProductName=\"Lightcord\" --win32metadata.CompanyName=\"Lightcord\" --protocol=discord --platform=\"win32\" --out=builds --icon=app.ico --executable-name=\"Lightcord\" --asar.unpack=*.{node,dll} --overwrite",
|
||||||
|
"build:electron_linux": "electron-packager ./distApp --ignore=\"(distApp|builds|\\.ts)\" --arch=x64 --protocol=discord --platform=\"linux\" --out=builds --icon=app.ico --executable-name=\"Lightcord\" --asar.unpack=*.{node,dll,so.4} --overwrite",
|
||||||
"build:minify": "node build.js",
|
"build:minify": "node build.js",
|
||||||
"devInstall": "npm i -g --arch=ia32 electron@8.3.0 && npm i -g typescript && npm i --save-dev @types/node@12.12.39 && npm i --save-dev --arch=ia32 electron@8.3.0 && node installSubModules.js && echo \"Everything is installed. You should be able to do `npm run test` to compile everything and launch.\""
|
"build:after": "node afterbuild.js",
|
||||||
|
"devInstall": "npm i -g --arch=ia32 electron@8.4.0 && npm i -g typescript && npm i --save-dev @types/node@12.12.39 && npm i --save-dev --arch=ia32 electron@8.4.0 && node installSubModules.js && echo \"Everything is installed. You should be able to do `npm run test` to compile everything and launch.\"",
|
||||||
|
"devInstall:64": "npm i -g --arch=x64 electron@8.4.0 && npm i -g typescript && npm i --save-dev @types/node@12.12.39 && npm i --save-dev --arch=x64 electron@8.4.0 && node installSubModules.js && echo \"Everything is installed. You should be able to do `npm run test` to compile everything and launch.\""
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
@ -35,9 +39,10 @@
|
||||||
"@types/uuid": "^8.0.0",
|
"@types/uuid": "^8.0.0",
|
||||||
"@types/yauzl": "^2.9.1",
|
"@types/yauzl": "^2.9.1",
|
||||||
"cross-spawn": "^7.0.3",
|
"cross-spawn": "^7.0.3",
|
||||||
"electron": "^8.3.0",
|
"electron": "^8.4.0",
|
||||||
"react": "^16.13.1",
|
"react": "^16.13.1",
|
||||||
"react-dom": "^16.13.1",
|
"react-dom": "^16.13.1",
|
||||||
"terser": "^4.7.0"
|
"terser": "^4.7.0",
|
||||||
|
"yazl": "^2.5.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue