diff --git a/src/main/events/cloud-save/download-game-artifact.ts b/src/main/events/cloud-save/download-game-artifact.ts index 49c0b4f9..b4ebd87d 100644 --- a/src/main/events/cloud-save/download-game-artifact.ts +++ b/src/main/events/cloud-save/download-game-artifact.ts @@ -9,6 +9,7 @@ import { backupsPath } from "@main/constants"; import type { GameShop } from "@types"; import YAML from "yaml"; +import { normalizePath } from "@main/helpers"; export interface LudusaviBackup { files: { @@ -31,7 +32,7 @@ const replaceLudusaviBackupWithCurrentUser = ( drives: Record; }; - const currentHomeDir = app.getPath("home"); + const currentHomeDir = normalizePath(app.getPath("home")); // TODO: Only works on Windows const usersDirPath = path.join(gameBackupPath, "drive-C", "Users"); @@ -124,7 +125,7 @@ const downloadGameArtifact = async ( replaceLudusaviBackupWithCurrentUser( path.join(backupPath, game), - path.normalize(homeDir).replace(/\\/g, "/") + normalizePath(path.normalize(homeDir)) ); Ludusavi.restoreBackup(backupPath).then(() => { diff --git a/src/main/events/cloud-save/upload-save-game.ts b/src/main/events/cloud-save/upload-save-game.ts index b7e48d77..76ea98d8 100644 --- a/src/main/events/cloud-save/upload-save-game.ts +++ b/src/main/events/cloud-save/upload-save-game.ts @@ -9,6 +9,7 @@ import axios from "axios"; import os from "node:os"; import { backupsPath } from "@main/constants"; import { app } from "electron"; +import { normalizePath } from "@main/helpers"; const bundleBackup = async (shop: GameShop, objectId: string) => { const backupPath = path.join(backupsPath, `${shop}-${objectId}`); @@ -55,7 +56,7 @@ const uploadSaveGame = async ( shop, objectId, hostname: os.hostname(), - homeDir: path.normalize(app.getPath("home")).replace(/\\/g, "/"), + homeDir: normalizePath(app.getPath("home")), platform: os.platform(), }); diff --git a/src/main/helpers/index.ts b/src/main/helpers/index.ts index bf29762a..e50b4422 100644 --- a/src/main/helpers/index.ts +++ b/src/main/helpers/index.ts @@ -1,6 +1,7 @@ import axios from "axios"; import { JSDOM } from "jsdom"; import UserAgent from "user-agents"; +import path from "node:path"; export const getFileBuffer = async (url: string) => fetch(url, { method: "GET" }).then((response) => @@ -27,3 +28,6 @@ export const requestWebPage = async (url: string) => { export const isPortableVersion = () => process.env.PORTABLE_EXECUTABLE_FILE !== null; + +export const normalizePath = (str: string) => + path.normalize(str.replace(/\\/g, "/"));