summary refs log tree commit diff
path: root/pkgs/tools/text
diff options
context:
space:
mode:
authorfigsoda <figsoda@pm.me>2022-09-25 18:20:43 -0400
committerfigsoda <figsoda@pm.me>2022-09-29 11:23:09 -0400
commitfcf1534fc7ab9c2b4e62d50b722cbdd443b0bdd6 (patch)
treefbf164171a5dfe3026ea08a19cfd99d8224dfbca /pkgs/tools/text
parentab7290449498f45b7cef6f134f378209f27ac0f9 (diff)
frawk: init at 0.4.6
Diffstat (limited to 'pkgs/tools/text')
-rw-r--r--pkgs/tools/text/frawk/default.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/tools/text/frawk/default.nix b/pkgs/tools/text/frawk/default.nix
new file mode 100644
index 0000000000000..d4e0f809ebe1e
--- /dev/null
+++ b/pkgs/tools/text/frawk/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, rustPlatform
+, fetchCrate
+, libxml2
+, ncurses
+, zlib
+, features ? [ "default" ]
+, llvmPackages_12
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "frawk";
+  version = "0.4.6";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-yEdfMikMcsQePxQL1+lma95O1x5z1B7aXAEf8apuGaU=";
+  };
+
+  cargoSha256 = "sha256-osi77Fx8jSfIvAIpThgPbnuJVF/Ydr2/+ROHcDG5ZbA=";
+
+  buildInputs = [ libxml2 ncurses zlib ];
+
+  buildNoDefaultFeatures = true;
+  buildFeatures = features;
+
+  preBuild = lib.optionalString (lib.elem "default" features || lib.elem "llvm_backend" features) ''
+    export LLVM_SYS_120_PREFIX=${llvmPackages_12.llvm.dev}
+  '' + lib.optionalString (lib.elem "default" features || lib.elem "unstable" features) ''
+    export RUSTC_BOOTSTRAP=1
+  '';
+
+  # depends on cpu instructions that may not be available on builders
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A small programming language for writing short programs processing textual data";
+    homepage = "https://github.com/ezrosent/frawk";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ figsoda ];
+    platforms = platforms.x86;
+  };
+}