mirror of
https://github.com/hydralauncher/hydra.git
synced 2026-01-25 20:01:03 +00:00
Merge pull request #709 from hydralauncher/hyd-192-select-lnk-as-parse-target-executable
feat: make it possible to select shortcuts (.lnk) on game executable
This commit is contained in:
10
src/main/events/helpers/parse-executable-path.ts
Normal file
10
src/main/events/helpers/parse-executable-path.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { shell } from "electron";
|
||||
|
||||
export const parseExecutablePath = (path: string) => {
|
||||
if (process.platform === "win32" && path.endsWith(".lnk")) {
|
||||
const { target } = shell.readShortcutLink(path);
|
||||
|
||||
return target;
|
||||
}
|
||||
return path;
|
||||
};
|
||||
@@ -2,15 +2,18 @@ import { gameRepository } from "@main/repository";
|
||||
|
||||
import { registerEvent } from "../register-event";
|
||||
import { shell } from "electron";
|
||||
import { parseExecutablePath } from "../helpers/parse-executable-path";
|
||||
|
||||
const openGame = async (
|
||||
_event: Electron.IpcMainInvokeEvent,
|
||||
gameId: number,
|
||||
executablePath: string
|
||||
) => {
|
||||
await gameRepository.update({ id: gameId }, { executablePath });
|
||||
const parsedPath = parseExecutablePath(executablePath);
|
||||
|
||||
shell.openPath(executablePath);
|
||||
await gameRepository.update({ id: gameId }, { executablePath: parsedPath });
|
||||
|
||||
shell.openPath(parsedPath);
|
||||
};
|
||||
|
||||
registerEvent("openGame", openGame);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { gameRepository } from "@main/repository";
|
||||
|
||||
import { registerEvent } from "../register-event";
|
||||
import { parseExecutablePath } from "../helpers/parse-executable-path";
|
||||
|
||||
const updateExecutablePath = async (
|
||||
_event: Electron.IpcMainInvokeEvent,
|
||||
@@ -12,7 +13,7 @@ const updateExecutablePath = async (
|
||||
id,
|
||||
},
|
||||
{
|
||||
executablePath,
|
||||
executablePath: parseExecutablePath(executablePath),
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user