summary refs log tree commit diff
path: root/pkgs/servers/nosql/cassandra/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/nosql/cassandra/generic.nix')
-rw-r--r--pkgs/servers/nosql/cassandra/generic.nix51
1 files changed, 42 insertions, 9 deletions
diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix
index 6ccd2e1c8dd..cab21080a04 100644
--- a/pkgs/servers/nosql/cassandra/generic.nix
+++ b/pkgs/servers/nosql/cassandra/generic.nix
@@ -1,17 +1,34 @@
-{ stdenv, fetchurl, python, makeWrapper, gawk, bash, getopt, procps
-, which, jre, version, sha256, coreutils, ...
+{ lib
+, stdenv
+, fetchurl
+, python
+, makeWrapper
+, gawk
+, bash
+, getopt
+, procps
+, which
+, jre
+, coreutils
+, nixosTests
+  # generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11
+, generation
+, version
+, sha256
+, extraMeta ? { }
+, ...
 }:
 
 let
-  libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc ];
-  binPath = with stdenv.lib; makeBinPath ([
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc ];
+  binPath = lib.makeBinPath [
     bash
     getopt
     gawk
     which
     jre
     procps
-  ]);
+  ];
 in
 
 stdenv.mkDerivation rec {
@@ -26,6 +43,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper coreutils ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir $out
     mv * $out
 
@@ -81,13 +100,27 @@ stdenv.mkDerivation rec {
     done
 
     wrapProgram $out/bin/cqlsh --prefix PATH : ${python}/bin
-    '';
 
-  meta = with stdenv.lib; {
+    runHook postInstall
+  '';
+
+  passthru = {
+    tests =
+      let
+        test = nixosTests."cassandra_${generation}";
+      in
+      {
+        nixos =
+          assert test.testPackage.version == version;
+          test;
+      };
+  };
+
+  meta = with lib; {
     homepage = "http://cassandra.apache.org/";
     description = "A massively scalable open source NoSQL database";
     platforms = platforms.unix;
     license = licenses.asl20;
-    maintainers = with maintainers; [ cransom ];
-  };
+    maintainers = [ maintainers.roberth ];
+  } // extraMeta;
 }