1{
2 lib,
3 appimageTools,
4 fetchurl,
5 nix-update-script,
6 extraPackages ? [ ],
7}:
8let
9 pname = "archipelago";
10 version = "0.6.2";
11 src = fetchurl {
12 url = "https://github.com/ArchipelagoMW/Archipelago/releases/download/${version}/Archipelago_${version}_linux-x86_64.AppImage";
13 hash = "sha256-DdlfHb8iTCfTGGBUYQeELYh2NF/2GcamtuJzeYb2A5M=";
14 };
15
16 appimageContents = appimageTools.extractType2 { inherit pname version src; };
17in
18appimageTools.wrapType2 {
19 inherit pname version src;
20 extraPkgs =
21 pkgs:
22 [
23 pkgs.xsel
24 pkgs.xclip
25 pkgs.mtdev
26 ]
27 ++ extraPackages;
28 extraInstallCommands = ''
29 install -Dm444 ${appimageContents}/archipelago.desktop -t $out/share/applications
30 substituteInPlace $out/share/applications/archipelago.desktop \
31 --replace-fail 'opt/Archipelago/ArchipelagoLauncher' "archipelago"
32 cp -r ${appimageContents}/usr/share/icons $out/share
33 '';
34
35 passthru.updateScript = nix-update-script { };
36
37 meta = {
38 description = "Multi-Game Randomizer and Server";
39 homepage = "https://archipelago.gg";
40 changelog = "https://github.com/ArchipelagoMW/Archipelago/releases/tag/${version}";
41 license = lib.licenses.mit;
42 mainProgram = "archipelago";
43 maintainers = with lib.maintainers; [
44 pyrox0
45 iqubic
46 ];
47 platforms = lib.platforms.linux;
48 };
49}