1{ lib
2, buildDotnetModule
3, fetchFromGitHub
4, dotnetCorePackages
5, glibc
6, zlib
7, libX11
8, libICE
9, libSM
10, fontconfig
11, gtk3
12, copyDesktopItems
13, graphicsmagick
14, wrapGAppsHook
15, makeDesktopItem
16}:
17
18buildDotnetModule rec {
19 pname = "scarab";
20 version = "1.31.0.0";
21
22 src = fetchFromGitHub {
23 owner = "fifty-six";
24 repo = pname;
25 rev = "v${version}";
26 sha256 = "sha256-oReU0kL0wPR6oqhq/uzO7nD1qo74h36w/gyvgffwzns=";
27 };
28
29 nugetDeps = ./deps.nix;
30 projectFile = "Scarab.sln";
31 executables = [ "Scarab" ];
32
33 runtimeDeps = [
34 glibc
35 zlib
36 libX11
37 libICE
38 libSM
39 fontconfig
40 gtk3
41 ];
42
43 buildInputs = [
44 gtk3
45 ];
46
47 nativeBuildInputs = [
48 copyDesktopItems
49 graphicsmagick
50 wrapGAppsHook
51 ];
52
53 postFixup = ''
54 # Icon for the desktop file
55 mkdir -p $out/share/icons/hicolor/256x256/apps/
56 gm convert $src/Scarab/Assets/omegamaggotprime.ico $out/share/icons/hicolor/256x256/apps/scarab.png
57 '';
58
59 desktopItems = [(makeDesktopItem {
60 desktopName = "Scarab";
61 name = "scarab";
62 exec = "Scarab";
63 icon = "scarab";
64 comment = meta.description;
65 type = "Application";
66 categories = [ "Game" ];
67 })];
68
69 meta = with lib; {
70 description = "Hollow Knight mod installer and manager";
71 homepage = "https://github.com/fifty-six/Scarab";
72 downloadPage = "https://github.com/fifty-six/Scarab/releases";
73 changelog = "https://github.com/fifty-six/Scarab/releases/tag/v${version}";
74 license = licenses.gpl3Only;
75 maintainers = with maintainers; [ huantian ];
76 mainProgram = "Scarab";
77 platforms = platforms.linux;
78 };
79}