From 9b0e3b77afeaa378c56da625c869f35dbb1eb6f8 Mon Sep 17 00:00:00 2001 From: Neta London Date: Mon, 25 Dec 2023 17:31:57 +0200 Subject: [PATCH 1/2] Rename Xor files to match chip name --- projects/src/index.ts | 2 +- projects/src/project_01/index.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/src/index.ts b/projects/src/index.ts index ab2bd7e51..d30458526 100644 --- a/projects/src/index.ts +++ b/projects/src/index.ts @@ -68,7 +68,7 @@ export const CHIP_PROJECTS: Record<"01" | "02" | "03" | "05", string[]> = { "Not", "And", "Or", - "XOr", + "Xor", "Mux", "DMux", "Not16", diff --git a/projects/src/project_01/index.ts b/projects/src/project_01/index.ts index 0fdd40ed9..fb6e76c87 100644 --- a/projects/src/project_01/index.ts +++ b/projects/src/project_01/index.ts @@ -33,10 +33,10 @@ export const CHIPS = { "Or.tst": Or.tst, "Or.cmp": Or.cmp, }, - XOr: { - "XOr.hdl": Xor.hdl, - "XOr.tst": Xor.tst, - "XOr.cmp": Xor.cmp, + Xor: { + "Xor.hdl": Xor.hdl, + "Xor.tst": Xor.tst, + "Xor.cmp": Xor.cmp, }, Mux: { "Mux.hdl": Mux.hdl, From ba2d01a5c17ac4bf0dd01d924b579cbf2a831eb1 Mon Sep 17 00:00:00 2001 From: Neta London Date: Mon, 25 Dec 2023 17:49:18 +0200 Subject: [PATCH 2/2] Add versioning system to update files automatically --- web/src/App.tsx | 2 ++ web/src/versions.ts | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 web/src/versions.ts diff --git a/web/src/App.tsx b/web/src/App.tsx index a4aa9d9c6..ff874ca21 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -31,6 +31,7 @@ import "./pico/pico.scss"; import "./pico/tooltip.scss"; import { TrackingBanner } from "./tracking"; import { ErrorBoundary, RenderError } from "./ErrorBoundary"; +import { updateVersion } from "./versions"; i18n.load("en", messages.messages); i18n.load("en-PL", plMessages.messages); @@ -54,6 +55,7 @@ function App() { fs.stat("/projects/01/Not/Not.hdl").catch(async () => { await loaders.resetFiles(fs); }); + updateVersion(fs); }, [fs]); useEffect(() => { diff --git a/web/src/versions.ts b/web/src/versions.ts new file mode 100644 index 000000000..c21d7a245 --- /dev/null +++ b/web/src/versions.ts @@ -0,0 +1,25 @@ +import { FileSystem } from "@davidsouther/jiffies/lib/esm/fs"; + +const CURRENT_VERSION = 1; + +export async function updateVersion(fs: FileSystem) { + let version = Number(localStorage.getItem("version")) ?? 0; + + while (version < CURRENT_VERSION) { + await versionUpdates[version](fs); + version++; + } + + localStorage.setItem("version", CURRENT_VERSION.toString()); +} + +const versionUpdates: Record Promise> = { + 0: async (fs: FileSystem) => { + for (const suffix of ["hdl", "cmp", "tst"]) { + await fs.writeFile( + `/projects/01/Xor/Xor.${suffix}`, + await fs.readFile(`/projects/01/XOr/XOr.${suffix}`) + ); + } + }, +};