chore: add plugins migration

This commit is contained in:
Louis 2023-09-29 15:44:21 +07:00 committed by Louis
parent 9d43fec13c
commit dad3d04403
2 changed files with 107 additions and 81 deletions

View File

@ -8,16 +8,18 @@ import {
} from "electron";
import { readdirSync } from "fs";
import { resolve, join, extname } from "path";
import { unlink, createWriteStream } from "fs";
import { rmdir, unlink, createWriteStream } from "fs";
import isDev = require("electron-is-dev");
import { init } from "./core/plugin-manager/pluginMgr";
const { autoUpdater } = require("electron-updater");
const Store = require("electron-store");
// @ts-ignore
import request = require("request");
// @ts-ignore
import progress = require("request-progress");
let mainWindow: BrowserWindow | undefined = undefined;
const store = new Store();
autoUpdater.autoDownload = false;
autoUpdater.autoInstallOnAppQuit = true;
@ -68,8 +70,29 @@ const createMainWindow = () => {
if (isDev) mainWindow.webContents.openDevTools();
};
const migratePlugins = () => {
return new Promise((resolve) => {
if (store.get("migrated_version") !== app.getVersion()) {
console.log("start migration:", store.get("migrated_version"));
const userDataPath = app.getPath("userData");
const fullPath = join(userDataPath, "plugins");
app.whenReady().then(() => {
rmdir(fullPath, { recursive: true }, function (err) {
if (err) console.log(err);
store.set("migrated_version", app.getVersion());
console.log("migrate plugins done");
resolve(undefined);
});
} else {
resolve(undefined);
}
});
};
app
.whenReady()
.then(migratePlugins)
.then(() => {
createMainWindow();
setupPlugins();
autoUpdater.checkForUpdates();
@ -111,7 +134,9 @@ app.whenReady().then(() => {
} else {
result = "File deleted successfully";
}
console.log(`Delete file ${filePath} from ${fullPath} result: ${result}`);
console.log(
`Delete file ${filePath} from ${fullPath} result: ${result}`
);
});
return result;

View File

@ -37,6 +37,7 @@
},
"dependencies": {
"electron-is-dev": "^2.0.0",
"electron-store": "^8.1.0",
"electron-updater": "^6.1.4",
"node-llama-cpp": "^2.4.1",
"pluggable-electron": "^0.6.0",