From de19c4815e1b3695d41f6fc3951908fbd7c41544 Mon Sep 17 00:00:00 2001 From: Jean Ouina Date: Sat, 13 Jun 2020 13:49:36 +0200 Subject: [PATCH] AutoStart + compile fix --- compile.js | 19 +++++++++++++++--- package-lock.json | 45 ++++++++++++++++++++++++++++++++++++++++-- package.json | 2 ++ src/autoStart/index.ts | 28 +++++++++++++++++++++++++- src/index.ts | 3 +++ src/windowsUtils.ts | 1 + tsconfig.json | 3 ++- 7 files changed, 94 insertions(+), 7 deletions(-) diff --git a/compile.js b/compile.js index 0caa9b2..907c524 100644 --- a/compile.js +++ b/compile.js @@ -51,9 +51,9 @@ async function main(){ console.info(`Minifying ${filepath} to ${newpath}`) if(filepath.endsWith("git.js")){ - let commit = child_process.execSync("git rev-parse HEAD").toString() - console.info(`Obtained commit ${commit} for the compilation`) - await fs.promises.writeFile(newpath, terser.minify(fs.readFileSync(filepath, "utf8").replace(/"{commit}"/g, `"${commit.split("\n")[0]}"`)).code, "utf8") + let commit = child_process.execSync("git rev-parse HEAD").toString().split("\n")[0].trim() + console.info(`Obtained commit ${commit} for the build`) + await fs.promises.writeFile(newpath, terser.minify(fs.readFileSync(filepath, "utf8").replace(/"{commit}"/g, `"${commit}"`)).code, "utf8") }else{ await fs.promises.writeFile(newpath, terser.minify(await fs.promises.readFile(filepath, "utf8")).code, "utf8") } @@ -70,6 +70,19 @@ async function main(){ }).then(() => { console.info(`Copied files and minified them from ${path.join(__dirname, "modules")}.`) }) + await processNextDir(path.join(__dirname, "LightcordApi"), { + startDir: path.join(__dirname, "LightcordApi"), + newDir: path.join(__dirname, "distApp", "LightcordApi") + }, ((filepath) => filepath.endsWith(".js") && (!production ? !filepath.includes("node_modules") : true)), async (filepath, newpath) => { + console.info(`Minifying ${filepath} to ${newpath}`) + await fs.promises.writeFile(newpath, terser.minify(await fs.promises.readFile(filepath, "utf8")).code, "utf8") + }).then(() => { + console.info(`Copied files and minified them from ${path.join(__dirname, "LightcordApi")}.`) + }) + + await fs.promises.rmdirSync(path.join(__dirname, "distApp", "LightcordApi", "src")) + await fs.promises.unlink(path.join(__dirname, "distApp", "LightcordApi", "webpack.config.json")) + await fs.promises.unlink(path.join(__dirname, "distApp", "LightcordApi", "tsconfig.json")) fs.mkdirSync(path.join(__dirname, "distApp", "BetterDiscordApp", "js"), {recursive: true}) fs.mkdirSync(path.join(__dirname, "distApp", "BetterDiscordApp", "css"), {recursive: true}) diff --git a/package-lock.json b/package-lock.json index 7c66fff..5cda454 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,11 @@ "defer-to-connect": "^1.0.1" } }, + "@types/auto-launch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/auto-launch/-/auto-launch-5.0.1.tgz", + "integrity": "sha512-+KQ+/koZ7sJXnf5cnCANofY6yXAdYJNEoVZEuWcwJfuWbUp9u6l09I7KhwD+ivU+cdz7JId4V5ukxscWtHdSuw==" + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -104,6 +109,11 @@ "uri-js": "^4.2.2" } }, + "applescript": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz", + "integrity": "sha1-u4evVoytA0pOSMS9r2Bno6JwExc=" + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -122,6 +132,28 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "auto-launch": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/auto-launch/-/auto-launch-5.0.5.tgz", + "integrity": "sha512-ppdF4mihhYzMYLuCcx9H/c5TUOCev8uM7en53zWVQhyYAJrurd2bFZx3qQVeJKF2jrc7rsPRNN5cD+i23l6PdA==", + "requires": { + "applescript": "^1.0.0", + "mkdirp": "^0.5.1", + "path-is-absolute": "^1.0.0", + "untildify": "^3.0.2", + "winreg": "1.2.4" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -767,8 +799,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { "version": "1.0.4", @@ -1162,6 +1193,11 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, + "untildify": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -1206,6 +1242,11 @@ "extsprintf": "^1.2.0" } }, + "winreg": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.4.tgz", + "integrity": "sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=" + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 3c3dbff..ba7775c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "author": "", "license": "ISC", "dependencies": { + "auto-launch": "^5.0.5", "custom-electron-titlebar": "^3.2.2-hotfix62", "glasstron": "0.0.3", "mkdirp": "^1.0.4", @@ -30,6 +31,7 @@ "@types/rimraf": "^3.0.0", "@types/yauzl": "^2.9.1", "electron": "8.3.0", + "@types/auto-launch": "^5.0.1", "terser": "^4.7.0" } } diff --git a/src/autoStart/index.ts b/src/autoStart/index.ts index 7f27565..84e7352 100644 --- a/src/autoStart/index.ts +++ b/src/autoStart/index.ts @@ -1,3 +1,29 @@ +import autoLaunch from "auto-launch" + +const autoStart = new autoLaunch({ + name: "Lightcord" +}) + +export default { + install(callback){ + autoStart.enable() + .then(callback, callback) + }, + isInstalled(callback){ + autoStart.isEnabled() + .then(callback) + }, + uninstall(callback){ + autoStart.disable() + .then(callback, callback) + }, + update(callback){ + autoStart.enable() + .then(callback, callback) + } +} + +/* let autoStart if(process.platform === "win32"){ @@ -8,4 +34,4 @@ if(process.platform === "win32"){ autoStart = require("./linux") } -export default autoStart as typeof import("./win32") \ No newline at end of file +export default autoStart as typeof import("./win32")*/ \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 4a8ffea..5b034c8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -50,12 +50,15 @@ function hasArgvFlag(flag) { //Transform main thread into async (async function Main(){ await electron.app.whenReady() + console.log(`Initializing Lightcord.`) console.log(`Version: ${buildInfo.version} releaseChannel: ${buildInfo.releaseChannel} commit: ${buildInfo.commit}`) + if(!electron.app.commandLine.hasSwitch('enable-transparent-visuals'))electron.app.commandLine.appendSwitch('enable-transparent-visuals'); electron.app.setAppUserModelId(Constants.APP_ID); + let coreModule create(() => { const startMinimized = hasArgvFlag('--start-minimized'); diff --git a/src/windowsUtils.ts b/src/windowsUtils.ts index 3465518..4067410 100644 --- a/src/windowsUtils.ts +++ b/src/windowsUtils.ts @@ -7,6 +7,7 @@ const regExe = process.env.SystemRoot ? path.join(process.env.SystemRoot, 'Syste // and the output from standard out. export function spawn(command: string, args: child_process.SpawnOptionsWithoutStdio, callback: (arg0: Error, arg1: string) => void) { let stdout = ''; + console.log(`[\x1b[33mDEBUG\x1b[0m] Spawning "${command} with args`, args) let spawnedProcess: child_process.ChildProcessWithoutNullStreams; try { diff --git a/tsconfig.json b/tsconfig.json index 0492f84..cde4946 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ }, "exclude": [ "./DiscordJS", - "./LightcordApi" + "./LightcordApi", + "./distApp" ] } \ No newline at end of file