Merge pull request #283958 from cideM/init-inflow

inflow: init at 1.0.1

Aleksana 3c2fdd0a 4ae5f28f

Changed files
+76
pkgs
by-name
in
inflow
+76
pkgs/by-name/in/inflow/package.nix
···
···
+
{ 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;
+
};
+
}