From 90e293d12208fbd97c6eec6e200d4cf526b602cc Mon Sep 17 00:00:00 2001 From: RatCornu Date: Wed, 31 Jan 2024 12:55:08 +0100 Subject: [PATCH] pingvin-share: init at 0.29.0 --- nixos/tests/pingvin-share.nix | 20 +++++++++++ pkgs/servers/pingvin-share/backend.nix | 45 +++++++++++++++++++++++++ pkgs/servers/pingvin-share/default.nix | 21 ++++++++++++ pkgs/servers/pingvin-share/frontend.nix | 37 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 5 files changed, 125 insertions(+) create mode 100644 nixos/tests/pingvin-share.nix create mode 100644 pkgs/servers/pingvin-share/backend.nix create mode 100644 pkgs/servers/pingvin-share/default.nix create mode 100644 pkgs/servers/pingvin-share/frontend.nix diff --git a/nixos/tests/pingvin-share.nix b/nixos/tests/pingvin-share.nix new file mode 100644 index 000000000000..beb2005f49d2 --- /dev/null +++ b/nixos/tests/pingvin-share.nix @@ -0,0 +1,20 @@ +import ./make-test-python.nix ({ lib, pkgs, ... }: { + name = "pingvin-share"; + meta.maintainers = with lib.maintainers; [ ratcornu ]; + + nodes.machine = { pkgs, ... }: { + services.pingvin-share = { + enable = true; + + backend.port = 9010; + frontend.port = 9011; + }; + }; + + testScript = '' + machine.wait_for_unit("pingvin-share-frontend.service") + machine.wait_for_open_port(9011) + machine.succeed("curl --fail http://127.0.0.1:9010/") + machine.succeed("curl --fail http://127.0.0.1:9011/") + ''; +}) diff --git a/pkgs/servers/pingvin-share/backend.nix b/pkgs/servers/pingvin-share/backend.nix new file mode 100644 index 000000000000..3715a653aed6 --- /dev/null +++ b/pkgs/servers/pingvin-share/backend.nix @@ -0,0 +1,45 @@ +{ + lib, + buildNpmPackage, + vips, + pkg-config, + nodePackages, + src, + version, +}: + +buildNpmPackage { + pname = "pingvin-share-backend"; + inherit version; + + src = "${src}/backend"; + + npmInstallFlags = [ "--build-from-source" ]; + installPhase = '' + cp -r . $out + ln -s $out/node_modules/.bin $out/bin + ''; + + preBuild = '' + prisma generate + ''; + + buildInputs = [ vips ]; + nativeBuildInputs = [ + pkg-config + nodePackages.prisma + ]; + + npmDepsHash = "sha256-btjvX+2krSc0/bJqeLcVTqHBVWqiTFipp3MidO9wApY="; + makeCacheWritable = true; + npmFlags = [ "--legacy-peer-deps" ]; + + meta = with lib; { + description = "Backend of pingvin-share, a self-hosted file sharing platform"; + homepage = "https://github.com/stonith404/pingvin-share"; + downloadPage = "https://github.com/stonith404/pingvin-share/releases"; + changelog = "https://github.com/stonith404/pingvin-share/releases/tag/v${version}"; + license = licenses.bsd2; + maintainers = with maintainers; [ ratcornu ]; + }; +} diff --git a/pkgs/servers/pingvin-share/default.nix b/pkgs/servers/pingvin-share/default.nix new file mode 100644 index 000000000000..9dd4fd88c237 --- /dev/null +++ b/pkgs/servers/pingvin-share/default.nix @@ -0,0 +1,21 @@ +{ + callPackage, + fetchFromGitHub, + recurseIntoAttrs, +}: + +let + version = "0.29.0"; + src = fetchFromGitHub { + owner = "stonith404"; + repo = "pingvin-share"; + rev = "v${version}"; + hash = "sha256-ETsIGb6IxGruApUP05cuMtTDNAE23CI1Q2MmjxX3aPo="; + }; +in + +recurseIntoAttrs { + backend = callPackage ./backend.nix { inherit src version; }; + + frontend = callPackage ./frontend.nix { inherit src version; }; +} diff --git a/pkgs/servers/pingvin-share/frontend.nix b/pkgs/servers/pingvin-share/frontend.nix new file mode 100644 index 000000000000..ff817506f8d8 --- /dev/null +++ b/pkgs/servers/pingvin-share/frontend.nix @@ -0,0 +1,37 @@ +{ + lib, + buildNpmPackage, + vips, + pkg-config, + src, + version, +}: + +buildNpmPackage { + pname = "pingvin-share-frontend"; + inherit version; + + src = "${src}/frontend"; + + npmInstallFlags = [ "--build-from-source" ]; + installPhase = '' + cp -r . $out + ln -s $out/node_modules/.bin $out/bin + ''; + + buildInputs = [ vips ]; + nativeBuildInputs = [ pkg-config ]; + + npmDepsHash = "sha256-66CUVLbq2XdOQAr69DcvxTMvOgSR/RTKPaq80JG+8dg="; + makeCacheWritable = true; + npmFlags = [ "--legacy-peer-deps" ]; + + meta = with lib; { + description = "Frontend of pingvin-share, a self-hosted file sharing platform"; + homepage = "https://github.com/stonith404/pingvin-share"; + downloadPage = "https://github.com/stonith404/pingvin-share/releases"; + changelog = "https://github.com/stonith404/pingvin-share/releases/tag/v${version}"; + license = licenses.bsd2; + maintainers = with maintainers; [ ratcornu ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ddc47d9d4a4c..04cdc88ac1d5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23400,6 +23400,8 @@ with pkgs; pico-sdk = callPackage ../development/libraries/pico-sdk { }; + pingvin-share = callPackage ../servers/pingvin-share { }; + pinocchio = callPackage ../development/libraries/pinocchio { }; pipelight = callPackage ../tools/misc/pipelight {