add user-store file name migration (#733)

Co-authored-by: Sebastian Malton <smalton@mirantis.com>
This commit is contained in:
Sebastian MaltonandSebastian Malton authored and GitHub committed 2021-03-23 11:56:04 -04:00
1 parent 62c3501011
commit 0b99377feb
3 files changed
+39 -1

No files matched your search

+12 -1
View File
@@ -10,6 +10,7 @@ import { kubeConfigDefaultPath, loadConfig } from "./kube-helpers";
import { appEventBus } from "./event-bus"; import { appEventBus } from "./event-bus";
import logger from "../main/logger"; import logger from "../main/logger";
import path from "path"; import path from "path";
import { fileNameMigration } from "../migrations/user-store";
export interface UserStoreModel { export interface UserStoreModel {
kubeConfigPath: string; kubeConfigPath: string;
@@ -37,7 +38,7 @@ export class UserStore extends BaseStore<UserStoreModel> {
private constructor() { private constructor() {
super({ super({
// configName: "lens-user-store", // todo: migrate from default "config.json" configName: "lens-user-store",
migrations, migrations,
}); });
@@ -85,6 +86,16 @@ export class UserStore extends BaseStore<UserStoreModel> {
} }
} }
async load(): Promise<void> {
/**
* This has to be here before the call to `new Config` in `super.load()`
* as we have to make sure that file is in the expected place for that call
*/
await fileNameMigration();
return super.load();
}
get isNewVersion() { get isNewVersion() {
return semver.gt(getAppVersion(), this.lastSeenAppVersion); return semver.gt(getAppVersion(), this.lastSeenAppVersion);
} }
@@ -0,0 +1,22 @@
import fse from "fs-extra";
import { app, remote } from "electron";
import path from "path";
export async function fileNameMigration() {
const userDataPath = (app || remote.app).getPath("userData");
const configJsonPath = path.join(userDataPath, "config.json");
const lensUserStoreJsonPath = path.join(userDataPath, "lens-user-store.json");
try {
await fse.move(configJsonPath, lensUserStoreJsonPath);
} catch (error) {
if (error.code === "ENOENT" && error.path === configJsonPath) { // (No such file or directory)
return; // file already moved
} else if (error.message === "dest already exists.") {
await fse.remove(configJsonPath);
} else {
// pass other errors along
throw error;
}
}
}
+5
View File
@@ -1,6 +1,11 @@
// User store migrations // User store migrations
import version210Beta4 from "./2.1.0-beta.4"; import version210Beta4 from "./2.1.0-beta.4";
import { fileNameMigration } from "./file-name-migration";
export {
fileNameMigration
};
export default { export default {
...version210Beta4, ...version210Beta4,