38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
const { contextBridge } = require("electron")
|
|
const { resolve, join } = require("path")
|
|
const { promises, constants } = require("fs")
|
|
|
|
const exec = require("util").promisify(require("child_process").exec)
|
|
|
|
contextBridge.exposeInMainWorld("installPackage", async (link) => {
|
|
const packagesPath = resolve(__dirname, "..")
|
|
const packagePath = join(packagesPath, link[7])
|
|
try {
|
|
await exec(`git clone ${link[0]}`, {
|
|
cwd: packagesPath,
|
|
})
|
|
|
|
await exec(
|
|
`${
|
|
process.platform == "darwin"
|
|
? path.join(process.env.HOME, "Library", "pnpm", "pnpm")
|
|
: "pnpm"
|
|
} i --production`,
|
|
{
|
|
cwd: packagePath,
|
|
}
|
|
)
|
|
|
|
try {
|
|
await promises.access(join(packagePath, "main.js"), constants.F_OK)
|
|
return {
|
|
reloadMessage:
|
|
"Main.js file detected: Please quit Discord from the system tray",
|
|
}
|
|
} catch (error) {
|
|
return { reloadMessage: "Please reload discord with Ctrl+R" }
|
|
}
|
|
} catch (error) {
|
|
return { error }
|
|
}
|
|
})
|