about summary refs log tree commit diff
path: root/pkgs/by-name/in
diff options
context:
space:
mode:
authorAleksana <me@aleksana.moe>2024-04-02 19:27:52 +0800
committerGitHub <noreply@github.com>2024-04-02 19:27:52 +0800
commit3c2fdd0a4e6396fc310a6e86faa24d1043a8486a (patch)
tree568f78aa16c288459dd7a75771539edaeff00e7b /pkgs/by-name/in
parent4ae5f28f7604d05c35532ef07a947d83a31e03c7 (diff)
parent124fbc2aec3cab29b9cadef931610a200357580f (diff)
Merge pull request #283958 from cideM/init-inflow
inflow: init at 1.0.1
Diffstat (limited to 'pkgs/by-name/in')
-rw-r--r--pkgs/by-name/in/inflow/package.nix76
1 files changed, 76 insertions, 0 deletions
diff --git a/pkgs/by-name/in/inflow/package.nix b/pkgs/by-name/in/inflow/package.nix
new file mode 100644
index 0000000000000..79f3acb58237a
--- /dev/null
+++ b/pkgs/by-name/in/inflow/package.nix
@@ -0,0 +1,76 @@
+{ lib, stdenv, fetchFromGitHub, runCommand, inflow, diffutils }:
+
+stdenv.mkDerivation rec {
+  pname = "inflow";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "stephen-huan";
+    repo = "inflow";
+    rev = "v${version}";
+    sha256 = "sha256-xKUqkrPwITai8g6U1NiNieAip/AzISgFfFtvR30hLNk=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    $CXX -Wall -Wpedantic -Wextra -O3 -o inflow inflow.cpp
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 inflow -t $out/bin
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    reflowWithLineLength = runCommand "${pname}-test"
+      {
+        nativeBuildInputs = [ inflow ];
+        buildInputs = [ diffutils ];
+      } ''
+      cat <<EOF > input.txt
+      xxxxx xxx xxx xxxx xxxxxxxxx xx x xxxxxxxxx x xxxx xxxx xxxxxxx xxxxxxxx xxx
+      xxxxxxxxx xxxxxxxx xx xx xxxxx xxxxx xxxx xx x xxxx xx xxxxxxxx xxxxxxxx xxxx
+      xxx xxxx xxxx xxx xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxx xxxxx xx xxxx x xxxx
+      xxxxxxxx xxxx xxxx xx xxxxx xxxx xxxxx xxxx xxxxxxxxx xxx xxxxxxxxxxx xxxxxx
+      xxx xxxxxxxxx xxxx xxxx xx x xx xxxx xxx xxxx xx xxx xxx xxxxxxxxxxx xxxx xxxxx
+      x xxxxx xxxxxxx xxxxxxx xx xx xxxxxx xx xxxxx
+      EOF
+
+      inflow 72 < input.txt > actual.txt
+
+      cat <<EOF > expected.txt
+      xxxxx xxx xxx xxxx xxxxxxxxx xx x xxxxxxxxx x xxxx xxxx xxxxxxx
+      xxxxxxxx xxx xxxxxxxxx xxxxxxxx xx xx xxxxx xxxxx xxxx xx x xxxx
+      xx xxxxxxxx xxxxxxxx xxxx xxx xxxx xxxx xxx xxxxxxxxxxxxxxxxxxx
+      xxxxxxxxxxxxx xxx xxxxx xx xxxx x xxxx xxxxxxxx xxxx xxxx xx xxxxx
+      xxxx xxxxx xxxx xxxxxxxxx xxx xxxxxxxxxxx xxxxxx xxx xxxxxxxxx
+      xxxx xxxx xx x xx xxxx xxx xxxx xx xxx xxx xxxxxxxxxxx xxxx xxxxx
+      x xxxxx xxxxxxx xxxxxxx xx xx xxxxxx xx xxxxx
+      EOF
+
+      if ! cmp --silent expected.txt actual.txt
+      then
+        echo "Error: actual.txt and expected.txt are different"
+        diff actual.txt expected.txt
+        exit 1
+      fi
+
+      touch $out
+    '';
+  };
+
+  meta = with lib; {
+    description = "Variance-optimal paragraph formatter";
+    homepage = "https://github.com/stephen-huan/inflow";
+    license = licenses.unlicense;
+    mainProgram = "inflow";
+    maintainers = with maintainers; [ fbrs ];
+    platforms = platforms.all;
+  };
+}