1{
2 lib,
3 dotnet-sdk,
4 stdenv,
5 substituteAll,
6
7 buildDotnetModule,
8 fetchFromGitHub,
9
10 dotnetCorePackages,
11
12 libX11,
13 libICE,
14 libSM,
15 fontconfig,
16
17 xdg-utils,
18}:
19
20buildDotnetModule rec {
21 pname = "BeatSaberModManager";
22 version = "0.0.5";
23
24 src = fetchFromGitHub {
25 owner = "affederaffe";
26 repo = pname;
27 rev = "v${version}";
28 sha256 = "sha256-HHWC+MAwJ+AMCuBzSuR7FbW3k+wLri0B9J1DftyfNEU=";
29 fetchSubmodules = true; # It vendors BSIPA-Linux
30 };
31
32 dotnet-sdk = with dotnetCorePackages; combinePackages [
33 sdk_7_0
34 sdk_6_0
35 ];
36
37 dotnet-runtime = dotnetCorePackages.runtime_7_0;
38
39 projectFile = [ "BeatSaberModManager/BeatSaberModManager.csproj" ];
40
41 executables = [ "BeatSaberModManager" ];
42
43 nugetDeps = ./deps.nix;
44
45 runtimeDeps = [
46 libX11
47 libICE
48 libSM
49 fontconfig
50 ];
51
52 # Required for OneClick
53 makeWrapperArgs = [
54 ''--suffix PATH : "${lib.makeBinPath [ xdg-utils ]}"''
55 ];
56
57 meta = with lib; {
58 description = "Yet another mod installer for Beat Saber, heavily inspired by ModAssistant";
59 homepage = "https://github.com/affederaffe/BeatSaberModManager";
60 longDescription = ''
61 BeatSaberModManager is yet another mod installer for Beat Saber, heavily inspired by ModAssistant
62 It strives to look more visually appealing and support both Windows and Linux, while still being as feature-rich as ModAssistant.
63
64 Features
65
66 - Windows and Linux support
67 - Dependency resolution
68 - Installed mod detection
69 - Mod uninstallation
70 - Theming support
71 - OneClick™ support for BeatSaver, ModelSaber and Playlists
72 '';
73 license = licenses.mit;
74 maintainers = with maintainers; [ atemu ];
75 platforms = with platforms; linux;
76 };
77}