1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 setuptools,
6 colorama,
7 colorlog,
8 packaging,
9 parse,
10 prompt-toolkit,
11 psutil,
12 requests,
13 resolvelib,
14 ruamel-yaml,
15 typing-extensions,
16 pathspec,
17 pytestCheckHook,
18 versionCheckHook,
19 nix-update-script,
20}:
21
22buildPythonPackage rec {
23 pname = "mcdreforged";
24 version = "2.15.4";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "MCDReforged";
29 repo = "MCDReforged";
30 tag = "v${version}";
31 hash = "sha256-q88jAsgoIFzsOVKeA4fk69wGbnq3HcYJ2YzeZQHmYo4=";
32 };
33
34 build-system = [ setuptools ];
35
36 dependencies = [
37 colorama
38 colorlog
39 packaging
40 parse
41 prompt-toolkit
42 psutil
43 requests
44 resolvelib
45 ruamel-yaml
46 typing-extensions
47 pathspec
48 ];
49
50 nativeCheckInputs = [
51 pytestCheckHook
52 versionCheckHook
53 ];
54
55 versionCheckProgramArg = "--version";
56
57 passthru.updateScript = nix-update-script { };
58
59 meta = {
60 description = "Rewritten version of MCDaemon, a python tool to control your Minecraft server";
61 homepage = "https://mcdreforged.com";
62 changelog = "https://github.com/MCDReforged/MCDReforged/releases/tag/v${version}";
63 license = lib.licenses.lgpl3Only;
64 maintainers = with lib.maintainers; [ moraxyc ];
65 mainProgram = "mcdreforged";
66 };
67}