From f34701bcbe0c7cc0c0a75b70156fc963b6be6a89 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Thu, 20 Feb 2025 11:42:34 -0600 Subject: [PATCH] fix bin name search --- modules/steam-rom-manager/default.nix | 34 ++++----------------------- modules/steam-rom-manager/options.nix | 5 ---- 2 files changed, 5 insertions(+), 34 deletions(-) diff --git a/modules/steam-rom-manager/default.nix b/modules/steam-rom-manager/default.nix index c0cf18c..6849c68 100644 --- a/modules/steam-rom-manager/default.nix +++ b/modules/steam-rom-manager/default.nix @@ -6,16 +6,16 @@ let cfg = config.programs.steam-rom-manager; # Function to find the main binary in a package - findMainBinary = pkg: name: + findMainBinary = pkg: let pkgName = pkg.pname or (builtins.parseDrvName pkg.name).name; - binPath = "${pkg}/bin/${pkgName}"; commonVariants = [ pkgName "${pkgName}-qt" "${pkgName}-gtk" "${pkgName}-emu" + "Ryujinx" ]; existingVariant = findFirst @@ -23,9 +23,7 @@ let null commonVariants; in - if name != "" - then name - else if existingVariant != null + if existingVariant != null then existingVariant else pkgName; @@ -35,118 +33,96 @@ let romFolder = "switch"; fileTypes = [ ".nca" ".NCA" ".nro" ".NRO" ".nso" ".NSO" ".nsp" ".NSP" ".xci" ".XCI" ]; package = pkgs.ryujinx; - binaryName = "Ryujinx"; }; yuzu = { romFolder = "switch"; fileTypes = [ ".nsp" ".NSP" ".xci" ".XCI" ]; package = pkgs.yuzu; - binaryName = "yuzu"; }; pcsx2 = { romFolder = "ps2"; fileTypes = [ ".iso" ".ISO" ".bin" ".BIN" ".chd" ".CHD" ]; package = pkgs.pcsx2; - binaryName = "pcsx2"; }; rpcs3 = { romFolder = "ps3"; fileTypes = [ ".iso" ".ISO" ".bin" ".BIN" ".pkg" ".PKG" ]; package = pkgs.rpcs3; - binaryName = "rpcs3"; }; dolphin-emu = { romFolder = "gc"; fileTypes = [ ".iso" ".ISO" ".gcm" ".GCM" ".ciso" ".CISO" ]; package = pkgs.dolphin-emu; - binaryName = "dolphin-emu"; }; duckstation = { romFolder = "psx"; fileTypes = [ ".iso" ".ISO" ".bin" ".BIN" ".chd" ".CHD" ".pbp" ".PBP" ]; package = pkgs.duckstation; - binaryName = "duckstation"; }; melonDS = { romFolder = "nds"; fileTypes = [ ".nds" ".NDS" ]; package = pkgs.melonDS; - binaryName = "melonDS"; }; cemu = { romFolder = "wiiu"; fileTypes = [ ".wud" ".WUD" ".wux" ".WUX" ".rpx" ".RPX" ]; package = pkgs.cemu; - binaryName = "cemu"; }; ppsspp = { romFolder = "psp"; fileTypes = [ ".iso" ".ISO" ".cso" ".CSO" ".pbp" ".PBP" ]; package = pkgs.ppsspp; - binaryName = "ppsspp"; }; mame = { romFolder = "arcade"; fileTypes = [ ".zip" ".ZIP" ".7z" ".7Z" ]; package = pkgs.mame; - binaryName = "mame"; }; dosbox = { romFolder = "dos"; fileTypes = [ ".exe" ".EXE" ".bat" ".BAT" ".com" ".COM" ]; package = pkgs.dosbox; - binaryName = "dosbox"; }; snes9x = { romFolder = "snes"; fileTypes = [ ".smc" ".SMC" ".sfc" ".SFC" ".fig" ".FIG" ]; package = pkgs.snes9x-gtk; - binaryName = "snes9x"; }; mgba = { romFolder = "gba"; fileTypes = [ ".gba" ".GBA" ]; package = pkgs.mgba; - binaryName = "mgba"; }; mupen64plus = { romFolder = "n64"; fileTypes = [ ".n64" ".N64" ".v64" ".V64" ".z64" ".Z64" ]; package = pkgs.mupen64plus; - binaryName = "mupen64plus"; }; retroarch = { romFolder = "retroarch"; fileTypes = [ ".zip" ".ZIP" ".7z" ".7Z" ".iso" ".ISO" ".bin" ".BIN" ".chd" ".CHD" ]; package = pkgs.retroarch; - binaryName = "retroarch"; }; flycast = { romFolder = "dreamcast"; fileTypes = [ ".gdi" ".GDI" ".cdi" ".CDI" ".chd" ".CHD" ]; package = pkgs.flycast; - binaryName = "flycast"; }; citra = { romFolder = "3ds"; fileTypes = [ ".3ds" ".3DS" ".cia" ".CIA" ".cxi" ".CXI" ]; package = pkgs.citra-nightly; - binaryName = "citra"; }; }; # Create parser configuration mkParserConfig = name: emu: let - # Get the default config if it exists - defaultConfig = commonEmulatorConfigs.${name} or {}; - # Merge the provided config with defaults - finalConfig = defaultConfig // emu; - # Use the provided package or fall back to the default if available package = emu.package; # Get the binary name dynamically - binaryName = findMainBinary package (finalConfig.binaryName or ""); + binaryName = findMainBinary package; orderedConfig = [ # Basic parser configuration @@ -339,7 +315,7 @@ in { configs = mapAttrsToList (name: emu: mkParserConfig name (emu // { romFolder = if emu.romFolder != "" then emu.romFolder else commonEmulatorConfigs.${name}.romFolder; - binaryName = if emu.binaryName != "" then emu.binaryName else commonEmulatorConfigs.${name}.binaryName; + # binaryName = if emu.binaryName != "" then emu.binaryName else commonEmulatorConfigs.${name}.binaryName; }) ) (filterAttrs (_: v: v.enable) cfg.emulators); diff --git a/modules/steam-rom-manager/options.nix b/modules/steam-rom-manager/options.nix index 5cc36ce..6cf4f1b 100644 --- a/modules/steam-rom-manager/options.nix +++ b/modules/steam-rom-manager/options.nix @@ -265,11 +265,6 @@ in { else pkgs.${name}; description = "Emulator package"; }; - binaryName = mkOption { - type = types.str; - default = ""; - description = "Name of the emulator binary (defaults to automatically detected from package)"; - }; romFolder = mkOption { type = types.str; default = "";