45 lines
1.2 KiB
Nix

{
lib,
fetchFromGitHub,
buildDotnetModule,
dotnet-sdk_6,
dotnet-runtime_6,
}:
buildDotnetModule rec {
pname = "tshock";
version = "5.2.3";
src = fetchFromGitHub {
owner = "Pryaxis";
repo = "TShock";
rev = "v${version}";
sha256 = "sha256-1EtHpBZ7bbwVbl+tMfwpjgPuxu98XKvxlZ2+SbUlWV4=";
fetchSubmodules = true;
};
dotnet-sdk = dotnet-sdk_6;
dotnet-runtime = dotnet-runtime_6;
executables = [ "TShock.Server" ];
projectFile = [
"TShockAPI/TShockAPI.csproj"
"TerrariaServerAPI/TerrariaServerAPI/TerrariaServerAPI.csproj"
"TShockLauncher/TShockLauncher.csproj"
"TShockInstaller/TShockInstaller.csproj"
"TShockPluginManager/TShockPluginManager.csproj"
]; # Excluding tests because they can't build for some reason
doCheck = false; # The same.
nugetSource = "https://api.nuget.org/v3/index.json";
nugetDeps = ./deps.nix;
meta = with lib; {
homepage = "https://github.com/Pryaxis/TShock";
description = "Modded server software for Terraria, providing a plugin system and inbuilt tools such as anti-cheat, server-side characters, groups, permissions, and item bans";
license = licenses.gpl3Only;
maintainers = [ maintainers.proggerx ];
mainProgram = "TShock.Server";
};
}