Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / moonraker / default.nix
bloba6b3f3eb21e7fe3247783c551f00e67241b30836
1 { lib, stdenvNoCC, fetchFromGitHub, python3, makeWrapper, unstableGitUpdater, nixosTests, useGpiod ? false }:
3 let
4   pythonEnv = python3.withPackages (packages:
5     with packages; [
6       tornado
7       pyserial-asyncio
8       pillow
9       lmdb
10       streaming-form-data
11       distro
12       inotify-simple
13       libnacl
14       paho-mqtt
15       pycurl
16       zeroconf
17       preprocess-cancellation
18       jinja2
19       dbus-next
20       apprise
21       python-periphery
22       ldap3
23     ]
24   );
25 in stdenvNoCC.mkDerivation rec {
26   pname = "moonraker";
27   version = "0.8.0-unstable-2023-12-27";
29   src = fetchFromGitHub {
30     owner = "Arksine";
31     repo = "moonraker";
32     rev = "c226e9c1e44d65ff6ea400b81e3cedba7f637976";
33     sha256 = "sha256-wdf4uab8pJEWaX6PFN9Y9pykmylmxJ4Oo5pwSQcyjCc=";
34   };
36   nativeBuildInputs = [ makeWrapper ];
38   installPhase = ''
39     mkdir -p $out $out/bin $out/lib
40     cp -r moonraker $out/lib
42     makeWrapper ${pythonEnv}/bin/python $out/bin/moonraker \
43       --add-flags "$out/lib/moonraker/moonraker.py"
44   '';
46   passthru = {
47     updateScript = unstableGitUpdater {
48       url = meta.homepage;
49       tagPrefix = "v";
50     };
51     tests.moonraker = nixosTests.moonraker;
52   };
54   meta = with lib; {
55     description = "API web server for Klipper";
56     homepage = "https://github.com/Arksine/moonraker";
57     license = licenses.gpl3Only;
58     maintainers = with maintainers; [ zhaofengli ];
59     mainProgram = "moonraker";
60   };