mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
add user-store file name migration (#733)
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
This commit is contained in:
parent
62c3501011
commit
0b99377feb
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
22
src/migrations/user-store/file-name-migration.ts
Normal file
22
src/migrations/user-store/file-name-migration.ts
Normal file
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user