summary refs log tree commit diff
path: root/pkgs/development/tools/misc/perfect-hash/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/misc/perfect-hash/default.nix')
-rw-r--r--pkgs/development/tools/misc/perfect-hash/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/perfect-hash/default.nix b/pkgs/development/tools/misc/perfect-hash/default.nix
new file mode 100644
index 00000000000..71747f0d117
--- /dev/null
+++ b/pkgs/development/tools/misc/perfect-hash/default.nix
@@ -0,0 +1,35 @@
+{ lib, python3, fetchFromGitHub }:
+python3.pkgs.buildPythonApplication rec {
+  pname = "perfect-hash";
+  version = "0.4.1";
+
+  # Archive on pypi does not contain examples, which are very helpful to
+  # understand how to use this program, so we use git source.
+  src = fetchFromGitHub {
+    owner = "ilanschnell";
+    repo = "perfect-hash";
+    rev = version;
+    sha256 = "0gkc3n613hl0q4jknrh2nm1n96j97p36q9jjgarb9d8yii9q7792";
+  };
+
+  postInstall = ''
+    mkdir -p $out/share/doc/perfect-hash
+    cp README.md $out/share/doc/perfect-hash
+    cp -r examples $out/share/doc/perfect-hash
+  '';
+
+  meta = with lib; {
+    description = "Minimal perfect hash function generator";
+    longDescription = ''
+      Generate a minimal perfect hash function for a given set of keys.
+      A given code template is filled with parameters, such that the
+      output is code which implements the hash function. Templates can
+      easily be constructed for any programming language.
+    '';
+    license = licenses.bsd3;
+    maintainers = [ maintainers.kaction ];
+
+    homepage = "https://github.com/ilanschnell/perfect-hash";
+    platforms = platforms.unix;
+  };
+}