summary refs log tree commit diff
path: root/pkgs/bluesky/pdsadmin/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/bluesky/pdsadmin/package.nix')
-rw-r--r--pkgs/bluesky/pdsadmin/package.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/bluesky/pdsadmin/package.nix b/pkgs/bluesky/pdsadmin/package.nix
new file mode 100644
index 0000000..ba204f4
--- /dev/null
+++ b/pkgs/bluesky/pdsadmin/package.nix
@@ -0,0 +1,63 @@
+# See: https://github.com/NixOS/nixpkgs/pull/350645
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  bash,
+  pds,
+  makeWrapper,
+  jq,
+  curl,
+  openssl,
+  lib,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "pdsadmin";
+  inherit (pds) version src;
+
+  patches = [ ./pdsadmin-offline.patch ];
+
+  nativeBuildInputs = [
+    bash
+    makeWrapper
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    patchShebangs . pdsadmin
+    substituteInPlace pdsadmin.sh \
+      --replace-fail NIXPKGS_PDSADMIN_ROOT $out
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/pds
+    install -Dm755 pdsadmin.sh $out/lib/pds
+    install -Dm755 pdsadmin/*.sh $out/lib/pds
+    makeWrapper "$out/lib/pds/pdsadmin.sh" "$out/bin/pdsadmin" \
+      --prefix PATH : "${
+        lib.makeBinPath [
+          jq
+          curl
+          openssl
+        ]
+      }"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Admin scripts for Bluesky Personal Data Server (PDS)";
+    homepage = "https://github.com/bluesky-social/pds";
+    license = with lib.licenses; [
+      mit
+      asl20
+    ];
+    platforms = lib.platforms.unix;
+    mainProgram = "pdsadmin";
+  };
+})