diff --git a/pkgs/tools/misc/lesspipe/default.nix b/pkgs/tools/misc/lesspipe/default.nix index b3433be58292..d5352ec26dcd 100644 --- a/pkgs/tools/misc/lesspipe/default.nix +++ b/pkgs/tools/misc/lesspipe/default.nix @@ -1,12 +1,11 @@ -{ stdenv, lib, fetchFromGitHub, makeWrapper, perl, file, ncurses }: +{ stdenv, fetchFromGitHub, substituteAll, perl, file, ncurses }: stdenv.mkDerivation rec { name = "lesspipe-${version}"; version = "1.82"; - buildInputs = [ makeWrapper perl ]; + buildInputs = [ perl ]; preConfigure = "patchShebangs ."; - preFixupPhases = ["wrapWithDepsPhase"]; src = fetchFromGitHub { owner = "wofr06"; @@ -15,9 +14,13 @@ stdenv.mkDerivation rec { sha256 = "0vb7bpap8vy003ha10hc7hxl17y47sgdnrjpihgqxkn8k0bfqbbq"; }; - wrapWithDepsPhase = '' - wrapProgram $out/bin/lesspipe.sh --prefix PATH ":" ${lib.makeBinPath [ file ncurses ]} - ''; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + file = "${file}/bin/file"; + tput = "${ncurses}/bin/tput"; + }) + ]; meta = with stdenv.lib; { description = "A preprocessor for less"; diff --git a/pkgs/tools/misc/lesspipe/fix-paths.patch b/pkgs/tools/misc/lesspipe/fix-paths.patch new file mode 100644 index 000000000000..1bffcf53c827 --- /dev/null +++ b/pkgs/tools/misc/lesspipe/fix-paths.patch @@ -0,0 +1,22 @@ +--- a/lesspipe.sh.in ++++ b/lesspipe.sh.in +@@ -48,8 +48,8 @@ if [[ "$LESS_ADVANCED_PREPROCESSOR" = '' ]]; then + fi + + filecmd() { +- file -L -s "$@" +- file -L -s -i "$@" 2> /dev/null | sed -n 's/.*charset=/;/p' | tr a-z A-Z ++ @file@ -L -s "$@" ++ @file@ -L -s -i "$@" 2> /dev/null | sed -n 's/.*charset=/;/p' | tr a-z A-Z + } + + sep=: # file name separator +@@ -546,7 +546,7 @@ isfinal() { + + # color requires -r or -R when calling less + typeset COLOR +- if [[ $(tput colors) -ge 8 && ("$LESS" = *-*r* || "$LESS" = *-*R*) ]]; then ++ if [[ $(@tput@ colors) -ge 8 && ("$LESS" = *-*r* || "$LESS" = *-*R*) ]]; then + COLOR="--color=always" + fi +