reformat tibia.nix
This commit is contained in:
parent
9ec7c2631d
commit
8d1f5e59c3
1 changed files with 26 additions and 11 deletions
|
|
@ -1,8 +1,7 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
|
||||
# Inline legacy libxml2 (2.9.x) because modern Nixpkgs removed it
|
||||
# Legacy libxml2 (2.9.x) — required by Tibia
|
||||
libxml2_2_9 = pkgs.stdenv.mkDerivation {
|
||||
pname = "libxml2-2.9";
|
||||
version = "2.9.14";
|
||||
|
|
@ -23,13 +22,28 @@ let
|
|||
enableParallelBuilding = true;
|
||||
};
|
||||
|
||||
# Wrapper for the real client
|
||||
# Centralized runtime library path for Tibia
|
||||
tibiaLibPath =
|
||||
lib.makeLibraryPath [
|
||||
pkgs.nss
|
||||
pkgs.nspr
|
||||
pkgs.libxkbfile
|
||||
libxml2_2_9
|
||||
];
|
||||
|
||||
# Helper: LD_LIBRARY_PATH export line
|
||||
exportLibs = ''
|
||||
export LD_LIBRARY_PATH="${tibiaLibPath}:$LD_LIBRARY_PATH"
|
||||
'';
|
||||
|
||||
# Wrapper for the real client (system-wide)
|
||||
tibiaClientWrapper = pkgs.writeShellScriptBin "tibia-client" ''
|
||||
#!/usr/bin/env bash
|
||||
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:$LD_LIBRARY_PATH"
|
||||
${exportLibs}
|
||||
exec steam-run "$HOME/.local/share/CipSoft GmbH/Tibia/packages/Tibia/bin/client" "$@"
|
||||
'';
|
||||
# Script that patches Tibia's package.json
|
||||
|
||||
# Patcher for Tibia's package.json
|
||||
tibiaPatcher = pkgs.writeShellScriptBin "tibia-patch" ''
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
|
@ -43,20 +57,21 @@ let
|
|||
exit 0
|
||||
fi
|
||||
|
||||
# Create wrapper INSIDE the Tibia package directory
|
||||
# Create wrapper inside Tibia package directory
|
||||
cat > "$LOCALWRAPPER" <<EOF
|
||||
#!/usr/bin/env bash
|
||||
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:\$LD_LIBRARY_PATH"
|
||||
${exportLibs}
|
||||
exec /run/current-system/sw/bin/tibia-client "\$@"
|
||||
EOF
|
||||
chmod +x "$LOCALWRAPPER"
|
||||
|
||||
# Patch JSON to use the local wrapper (relative path!)
|
||||
# Patch JSON to use the local wrapper
|
||||
sed -i 's#"executable": "bin/client"#"executable": "tibia-client-wrapper"#' "$PKGJSON"
|
||||
|
||||
echo "Tibia client patched to use tibia-client-wrapper."
|
||||
'';
|
||||
|
||||
# Wrapper for the Tibia launcher
|
||||
tibiaLauncherWrapper = pkgs.writeShellScriptBin "tibia" ''
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
|
@ -71,10 +86,11 @@ EOF
|
|||
|
||||
tibia-patch
|
||||
|
||||
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:$LD_LIBRARY_PATH"
|
||||
${exportLibs}
|
||||
exec steam-run "$LAUNCHER"
|
||||
'';
|
||||
|
||||
# Direct client launcher (bypasses Tibia's launcher entirely)
|
||||
tibiaDirect = pkgs.writeShellScriptBin "tibia-direct" ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
|
@ -86,8 +102,7 @@ EOF
|
|||
exit 1
|
||||
fi
|
||||
|
||||
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:$LD_LIBRARY_PATH"
|
||||
|
||||
${exportLibs}
|
||||
exec steam-run "$CLIENT"
|
||||
'';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue