From f825a02eb1dd103c53793578bea9a97563d8d1f3 Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov Date: Fri, 11 Sep 2020 22:27:18 -0400 Subject: [PATCH] perfect-hash: init at 0.4.1 Co-authored-by: Sandro --- .../tools/misc/perfect-hash/default.nix | 35 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 pkgs/development/tools/misc/perfect-hash/default.nix 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 000000000000..4e405413e3ae --- /dev/null +++ b/pkgs/development/tools/misc/perfect-hash/default.nix @@ -0,0 +1,35 @@ +{ stdenv, 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 stdenv.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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ee2f1c8bbde..5bf2c4fbea17 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11403,6 +11403,8 @@ in pax-rs = callPackage ../development/tools/pax-rs { }; + perfect-hash = callPackage ../development/tools/misc/perfect-hash { }; + peg = callPackage ../development/tools/parsing/peg { }; pgcli = pkgs.python3Packages.pgcli;