mirror of
https://github.com/hydralauncher/hydra.git
synced 2026-01-28 13:21:02 +00:00
feat: adding review styling
This commit is contained in:
13
src/main/events/misc/check-homebrew-folder-exists.ts
Normal file
13
src/main/events/misc/check-homebrew-folder-exists.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { registerEvent } from "../register-event";
|
||||
import { DECKY_PLUGINS_LOCATION } from "@main/constants";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
const checkHomebrewFolderExists = async (
|
||||
_event: Electron.IpcMainInvokeEvent
|
||||
): Promise<boolean> => {
|
||||
const homebrewPath = path.dirname(DECKY_PLUGINS_LOCATION);
|
||||
return fs.existsSync(homebrewPath);
|
||||
};
|
||||
|
||||
registerEvent("checkHomebrewFolderExists", checkHomebrewFolderExists);
|
||||
63
src/main/events/misc/get-hydra-decky-plugin-info.ts
Normal file
63
src/main/events/misc/get-hydra-decky-plugin-info.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { registerEvent } from "../register-event";
|
||||
import { logger } from "@main/services";
|
||||
import { HYDRA_DECKY_PLUGIN_LOCATION } from "@main/constants";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
const getHydraDeckyPluginInfo = async (
|
||||
_event: Electron.IpcMainInvokeEvent
|
||||
): Promise<{
|
||||
installed: boolean;
|
||||
version: string | null;
|
||||
path: string;
|
||||
}> => {
|
||||
try {
|
||||
// Check if plugin folder exists
|
||||
if (!fs.existsSync(HYDRA_DECKY_PLUGIN_LOCATION)) {
|
||||
logger.log("Hydra Decky plugin not installed");
|
||||
return {
|
||||
installed: false,
|
||||
version: null,
|
||||
path: HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
};
|
||||
}
|
||||
|
||||
// Check if package.json exists
|
||||
const packageJsonPath = path.join(
|
||||
HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
"package.json"
|
||||
);
|
||||
|
||||
if (!fs.existsSync(packageJsonPath)) {
|
||||
logger.log("Hydra Decky plugin package.json not found");
|
||||
return {
|
||||
installed: false,
|
||||
version: null,
|
||||
path: HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
};
|
||||
}
|
||||
|
||||
// Read and parse package.json
|
||||
const packageJsonContent = fs.readFileSync(packageJsonPath, "utf-8");
|
||||
const packageJson = JSON.parse(packageJsonContent);
|
||||
const version = packageJson.version;
|
||||
|
||||
logger.log(`Hydra Decky plugin installed, version: ${version}`);
|
||||
|
||||
return {
|
||||
installed: true,
|
||||
version,
|
||||
path: HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
};
|
||||
} catch (error) {
|
||||
logger.error("Failed to get plugin info:", error);
|
||||
return {
|
||||
installed: false,
|
||||
version: null,
|
||||
path: HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
registerEvent("getHydraDeckyPluginInfo", getHydraDeckyPluginInfo);
|
||||
|
||||
50
src/main/events/misc/install-hydra-decky-plugin.ts
Normal file
50
src/main/events/misc/install-hydra-decky-plugin.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import { registerEvent } from "../register-event";
|
||||
import { logger, DeckyPlugin } from "@main/services";
|
||||
import { HYDRA_DECKY_PLUGIN_LOCATION } from "@main/constants";
|
||||
|
||||
const installHydraDeckyPlugin = async (
|
||||
_event: Electron.IpcMainInvokeEvent
|
||||
): Promise<{
|
||||
success: boolean;
|
||||
path: string;
|
||||
currentVersion: string | null;
|
||||
expectedVersion: string;
|
||||
error?: string;
|
||||
}> => {
|
||||
try {
|
||||
logger.log("Installing/updating Hydra Decky plugin...");
|
||||
|
||||
const result = await DeckyPlugin.checkPluginVersion();
|
||||
|
||||
if (result.exists && !result.outdated) {
|
||||
logger.log("Plugin installed successfully");
|
||||
return {
|
||||
success: true,
|
||||
path: HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
currentVersion: result.currentVersion,
|
||||
expectedVersion: result.expectedVersion,
|
||||
};
|
||||
} else {
|
||||
logger.error("Failed to install plugin");
|
||||
return {
|
||||
success: false,
|
||||
path: HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
currentVersion: result.currentVersion,
|
||||
expectedVersion: result.expectedVersion,
|
||||
error: "Plugin installation failed",
|
||||
};
|
||||
}
|
||||
} catch (error) {
|
||||
const errorMessage = error instanceof Error ? error.message : String(error);
|
||||
logger.error("Failed to install plugin:", error);
|
||||
return {
|
||||
success: false,
|
||||
path: HYDRA_DECKY_PLUGIN_LOCATION,
|
||||
currentVersion: null,
|
||||
expectedVersion: "0.0.3",
|
||||
error: errorMessage,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
registerEvent("installHydraDeckyPlugin", installHydraDeckyPlugin);
|
||||
Reference in New Issue
Block a user