re-do archipelago

This commit is contained in:
Noa Aarts 2025-06-30 17:24:43 +02:00
parent e5f14f1212
commit 6d415a11e2
Signed by: noa
GPG key ID: 1850932741EFF672

View file

@ -117,11 +117,56 @@ in
systemd.services = {
"archipelago" =
let
ap =
{
lib,
appimageTools,
fetchurl,
nix-update-script,
extraPackages ? [ ],
}:
let
pname = "archipelago";
version = "0.6.2";
src = fetchurl {
url = "https://github.com/ArchipelagoMW/Archipelago/releases/download/${version}-rc3/Archipelago_${version}_linux-x86_64.AppImage";
hash = "sha256-5uoHIKaBPgZEg5rPx1yv/uqb2iBQs6uYLRPO9Z1N2Wg=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraPkgs =
pkgs:
[
pkgs.xsel
pkgs.xclip
pkgs.mtdev
]
++ extraPackages;
extraInstallCommands = ''
install -Dm444 ${appimageContents}/archipelago.desktop -t $out/share/applications
substituteInPlace $out/share/applications/archipelago.desktop \
--replace-fail 'opt/Archipelago/ArchipelagoLauncher' "archipelago"
cp -r ${appimageContents}/usr/share/icons $out/share
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Multi-Game Randomizer and Server";
homepage = "https://archipelago.gg";
changelog = "https://github.com/ArchipelagoMW/Archipelago/releases/tag/${version}";
license = lib.licenses.mit;
mainProgram = "archipelago";
maintainers = with lib.maintainers; [ pyrox0 ];
platforms = lib.platforms.linux;
};
};
archipelago = pkgs.callPackage ap { };
script = pkgs.writeShellScript "archipelago-server" ''
cd /home/noa/Archipelago
${pkgs.python312Full}/bin/python -m venv .
source bin/activate
python MultiServer.py output/AP_43890937735956963351.zip
${archipelago}/bin/archipelago MultiServer -- /home/noa/Archipelago/output/AP_43890937735956963351.zip
'';
in
{
@ -142,6 +187,7 @@ in
after = [
"network-online.target"
];
wantedBy = [ "multi-user.target" ];
restartIfChanged = true;
};