From 6acf10c7f351d3ac0471cffd0e21f7ee0298ab4a Mon Sep 17 00:00:00 2001 From: figsoda Date: Fri, 10 Mar 2023 12:43:17 -0500 Subject: [PATCH] csvquote: init at 0.1.5 --- pkgs/tools/text/csvquote/csvquote-path.patch | 14 ++++++ pkgs/tools/text/csvquote/default.nix | 47 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 63 insertions(+) create mode 100644 pkgs/tools/text/csvquote/csvquote-path.patch create mode 100644 pkgs/tools/text/csvquote/default.nix diff --git a/pkgs/tools/text/csvquote/csvquote-path.patch b/pkgs/tools/text/csvquote/csvquote-path.patch new file mode 100644 index 000000000000..a3f87055f238 --- /dev/null +++ b/pkgs/tools/text/csvquote/csvquote-path.patch @@ -0,0 +1,14 @@ +--- a/csvheader ++++ b/csvheader +@@ -29,10 +29,6 @@ while getopts "d:tq:r:" arg; do + esac + done + +-CSVQUOTE=`which csvquote` || CSVQUOTE="./csvquote" +-if [ ! -f $CSVQUOTE ]; then +- echo "csvquote program not found. exiting" +- exit 1 +-fi ++CSVQUOTE=@out@/bin/csvquote + + $CSVQUOTE $@ | head -n 1 | tr "$DEL" '\n' | nl -ba | $CSVQUOTE -u -d "$DEL" -q "$QUO" -r "$REC" diff --git a/pkgs/tools/text/csvquote/default.nix b/pkgs/tools/text/csvquote/default.nix new file mode 100644 index 000000000000..2812de208412 --- /dev/null +++ b/pkgs/tools/text/csvquote/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchFromGitHub +, patsh +}: + +stdenv.mkDerivation rec { + pname = "csvquote"; + version = "0.1.5"; + + src = fetchFromGitHub { + owner = "dbro"; + repo = "csvquote"; + rev = "v${version}"; + hash = "sha256-847JAoDEfA9K4LB8z9cqSw+GTImqmITBylB/4odLDb0="; + }; + + patches = [ + # patch csvheader to use csvquote from the derivation + ./csvquote-path.patch + ]; + + nativeBuildInputs = [ + patsh + ]; + + makeFlags = [ + "BINDIR=$(out)/bin" + ]; + + preInstall = '' + mkdir -p "$out/bin" + ''; + + postInstall = '' + substituteAllInPlace $out/bin/csvheader + patsh $out/bin/csvheader -fs ${builtins.storeDir} + ''; + + meta = with lib; { + description = "Enables common unix utlities like cut, awk, wc, head to work correctly with csv data containing delimiters and newlines"; + homepage = "https://github.com/dbro/csvquote"; + license = licenses.mit; + maintainers = with maintainers; [ figsoda ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8cfcec3dda58..4cbf2839c4c1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4317,6 +4317,8 @@ with pkgs; csvkit = callPackage ../tools/text/csvkit { }; + csvquote = callPackage ../tools/text/csvquote { }; + csvtool = callPackage ../development/ocaml-modules/csv/csvtool.nix { }; csv2latex = callPackage ../tools/misc/csv2latex { };