mirror of
https://github.com/Equicord/Equicord.git
synced 2025-05-10 17:35:37 +02:00
Revert Back To Asar
This commit is contained in:
parent
1e5a600213
commit
d1d1e28138
8 changed files with 24 additions and 65 deletions
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
@ -53,7 +53,7 @@ jobs:
|
|||
cp Vencord.user.{js,js.LEGAL.txt} release
|
||||
|
||||
# copy the plugin data jsons, the extension zips and the desktop/vesktop asars
|
||||
cp *.{json,zip} release
|
||||
cp *.{json,zip,asar} release
|
||||
|
||||
# legacy un-asared files
|
||||
cp desktop/* release
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
// @ts-check
|
||||
|
||||
import { createPackage } from "@electron/asar";
|
||||
import { readdir, writeFile } from "fs/promises";
|
||||
import { dirname, join } from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
@ -227,3 +228,8 @@ await Promise.all([
|
|||
main: "main.js"
|
||||
}))
|
||||
]);
|
||||
|
||||
await Promise.all([
|
||||
createPackage("dist/desktop", "dist/desktop.asar"),
|
||||
createPackage("dist/equibop", "dist/equibop.asar"),
|
||||
]);
|
||||
|
|
|
@ -43,11 +43,9 @@ if (IS_VESKTOP || !IS_VANILLA) {
|
|||
}
|
||||
switch (url) {
|
||||
case "renderer.js.map":
|
||||
case "equibopRenderer.js.map":
|
||||
case "preload.js.map":
|
||||
case "equibopPreload.js.map":
|
||||
case "patcher.js.map":
|
||||
case "equibopMain.js.map":
|
||||
case "main.js.map":
|
||||
cb(join(__dirname, url));
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -119,7 +119,7 @@ ipcMain.handle(IpcEvents.OPEN_MONACO_EDITOR, async () => {
|
|||
autoHideMenuBar: true,
|
||||
darkTheme: true,
|
||||
webPreferences: {
|
||||
preload: join(__dirname, IS_DISCORD_DESKTOP ? "preload.js" : "equibopPreload.js"),
|
||||
preload: join(__dirname, "preload.js"),
|
||||
contextIsolation: true,
|
||||
nodeIntegration: false,
|
||||
sandbox: false
|
||||
|
|
|
@ -29,11 +29,8 @@ console.log("[Equicord] Starting up...");
|
|||
// Our injector file at app/index.js
|
||||
const injectorPath = require.main!.filename;
|
||||
|
||||
// special discord_arch_electron injection method
|
||||
const asarName = require.main!.path.endsWith("app.asar") ? "_app.asar" : "app.asar";
|
||||
|
||||
// The original app.asar
|
||||
const asarPath = join(dirname(injectorPath), "..", asarName);
|
||||
const asarPath = join(dirname(injectorPath), "..", "_app.asar");
|
||||
|
||||
const discordPkg = require(join(asarPath, "package.json"));
|
||||
require.main!.filename = join(asarPath, discordPkg.main);
|
||||
|
|
|
@ -16,12 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export const EQUICORD_FILES = [
|
||||
IS_DISCORD_DESKTOP ? "patcher.js" : "equibopMain.js",
|
||||
IS_DISCORD_DESKTOP ? "preload.js" : "equibopPreload.js",
|
||||
IS_DISCORD_DESKTOP ? "renderer.js" : "equibopRenderer.js",
|
||||
IS_DISCORD_DESKTOP ? "renderer.css" : "equibopRenderer.css",
|
||||
];
|
||||
export const ASAR_FILE = IS_VESKTOP ? "vesktop.asar" : IS_EQUIBOP ? "equibop.asar" : "desktop.asar";
|
||||
|
||||
export function serializeErrors(func: (...args: any[]) => any) {
|
||||
return async function () {
|
||||
|
|
|
@ -19,22 +19,16 @@
|
|||
import { get } from "@main/utils/simpleGet";
|
||||
import { IpcEvents } from "@shared/IpcEvents";
|
||||
import { VENCORD_USER_AGENT } from "@shared/vencordUserAgent";
|
||||
import { app, dialog, ipcMain } from "electron";
|
||||
import { writeFile } from "fs/promises";
|
||||
import {
|
||||
existsSync,
|
||||
unlinkSync,
|
||||
writeFileSync,
|
||||
} from "original-fs";
|
||||
import { join } from "path";
|
||||
import { ipcMain } from "electron";
|
||||
import { writeFileSync as originalWriteFileSync } from "original-fs";
|
||||
|
||||
import gitHash from "~git-hash";
|
||||
import gitRemote from "~git-remote";
|
||||
|
||||
import { EQUICORD_FILES, serializeErrors } from "./common";
|
||||
import { ASAR_FILE, serializeErrors } from "./common";
|
||||
|
||||
const API_BASE = `https://api.github.com/repos/${gitRemote}`;
|
||||
let PendingUpdates = [] as [string, string][];
|
||||
let PendingUpdate: string | null = null;
|
||||
|
||||
async function githubGet(endpoint: string) {
|
||||
return get(API_BASE + endpoint, {
|
||||
|
@ -71,54 +65,23 @@ async function fetchUpdates() {
|
|||
return false;
|
||||
|
||||
|
||||
data.assets.forEach(({ name, browser_download_url }) => {
|
||||
if (EQUICORD_FILES.some(s => name.startsWith(s))) {
|
||||
PendingUpdates.push([name, browser_download_url]);
|
||||
}
|
||||
});
|
||||
const asset = data.assets.find(a => a.name === ASAR_FILE);
|
||||
PendingUpdate = asset.browser_download_url;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
async function applyUpdates() {
|
||||
await Promise.all(PendingUpdates.map(
|
||||
async ([name, data]) => writeFile(
|
||||
join(__dirname, name),
|
||||
await get(data)
|
||||
)
|
||||
));
|
||||
PendingUpdates = [];
|
||||
if (!PendingUpdate) return true;
|
||||
|
||||
const data = await get(PendingUpdate);
|
||||
originalWriteFileSync(__dirname, data);
|
||||
|
||||
PendingUpdate = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
async function migrateAsarToLegacy() {
|
||||
try {
|
||||
const isFlatpak = process.platform === "linux" && !!process.env.FLATPAK_ID;
|
||||
if (isFlatpak) throw "Flatpak Discord can't automatically be migrated.";
|
||||
|
||||
const asarPath = join(__dirname, "../equicord.asar");
|
||||
if (existsSync(asarPath)) {
|
||||
unlinkSync(asarPath);
|
||||
}
|
||||
|
||||
writeFileSync(__filename, "// Shim for legacy Equicord\n\nrequire(\"./index.js\");");
|
||||
|
||||
app.relaunch();
|
||||
app.exit();
|
||||
} catch (e) {
|
||||
console.error("Failed to migrate to legacy", e);
|
||||
|
||||
app.whenReady().then(() => {
|
||||
dialog.showErrorBox(
|
||||
"Migration Error",
|
||||
"Failed to migrate back to the legacy version. Please reinstall using the Equicord Installer."
|
||||
);
|
||||
app.exit(1);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ipcMain.handle(IpcEvents.GET_REPO, serializeErrors(() => `https://github.com/${gitRemote}`));
|
||||
ipcMain.handle(IpcEvents.GET_UPDATES, serializeErrors(calculateGitChanges));
|
||||
ipcMain.handle(IpcEvents.UPDATE, serializeErrors(fetchUpdates));
|
||||
|
|
|
@ -28,7 +28,7 @@ contextBridge.exposeInMainWorld("VencordNative", VencordNative);
|
|||
// Discord
|
||||
if (location.protocol !== "data:") {
|
||||
// #region cssInsert
|
||||
const rendererCss = join(__dirname, IS_DISCORD_DESKTOP ? "renderer.css" : "equibopRenderer.css");
|
||||
const rendererCss = join(__dirname, "renderer.css");
|
||||
|
||||
const style = document.createElement("style");
|
||||
style.id = "vencord-css-core";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue