diff --git a/pkgs/tools/misc/bat-extras/buildBatExtrasPkg.nix b/pkgs/tools/misc/bat-extras/buildBatExtrasPkg.nix index 7c7d36d397d0..e4aaeedbd12b 100644 --- a/pkgs/tools/misc/bat-extras/buildBatExtrasPkg.nix +++ b/pkgs/tools/misc/bat-extras/buildBatExtrasPkg.nix @@ -8,10 +8,12 @@ fish, getconf, makeWrapper, + nushell, zsh, }: let cleanArgs = lib.flip removeAttrs [ + "name" "dependencies" "meta" ]; @@ -26,6 +28,7 @@ stdenv.mkDerivation ( finalAttrs: cleanArgs args // { + pname = name; inherit (core) version; src = core; @@ -35,24 +38,25 @@ stdenv.mkDerivation ( buildInputs = dependencies; # Patch shebangs now because our tests rely on them - postPatch = '' + postPatch = (args.postPatch or "") + '' patchShebangs --host bin/${name} ''; dontConfigure = true; - dontBuild = true; # we've already built + dontBuild = true; # we've already built it - doCheck = true; + doCheck = args.doCheck or true; nativeCheckInputs = [ bat bash fish + nushell zsh ] ++ (lib.optionals stdenv.hostPlatform.isDarwin [ getconf ]); checkPhase = '' runHook preCheck - bash ./test.sh --compiled --suite ${name} + bash ./test.sh --compiled --suite ${name} --verbose --snapshot:show runHook postCheck ''; @@ -69,7 +73,7 @@ stdenv.mkDerivation ( runHook postInstall ''; - # We already patched + # We have already patched dontPatchShebangs = true; meta = core.meta // { mainProgram = name; } // meta; diff --git a/pkgs/tools/misc/bat-extras/modules/batgrep.nix b/pkgs/tools/misc/bat-extras/modules/batgrep.nix index 8ce898761c5b..72fc2ee8c076 100644 --- a/pkgs/tools/misc/bat-extras/modules/batgrep.nix +++ b/pkgs/tools/misc/bat-extras/modules/batgrep.nix @@ -11,5 +11,8 @@ buildBatExtrasPkg { coreutils ripgrep ]; + # The tests are broken with the new bat 0.26.0 + # https://github.com/eth-p/bat-extras/issues/143 + doCheck = false; meta.description = "Quickly search through and highlight files using ripgrep"; } diff --git a/pkgs/tools/misc/bat-extras/modules/batpipe.nix b/pkgs/tools/misc/bat-extras/modules/batpipe.nix index 2740444bb26d..c8c9a754923d 100644 --- a/pkgs/tools/misc/bat-extras/modules/batpipe.nix +++ b/pkgs/tools/misc/bat-extras/modules/batpipe.nix @@ -1,9 +1,23 @@ { + lib, + stdenv, buildBatExtrasPkg, less, + procps, }: buildBatExtrasPkg { name = "batpipe"; - dependencies = [ less ]; + dependencies = [ + less + procps + ]; + + patches = [ + ../patches/batpipe-skip-outdated-test.patch + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + ../patches/batpipe-skip-detection-tests.patch + ]; + meta.description = "Less (and soon bat) preprocessor for viewing more types of files in the terminal"; } diff --git a/pkgs/tools/misc/bat-extras/modules/core.nix b/pkgs/tools/misc/bat-extras/modules/core.nix index b27f8be6e3e1..f145b666d21d 100644 --- a/pkgs/tools/misc/bat-extras/modules/core.nix +++ b/pkgs/tools/misc/bat-extras/modules/core.nix @@ -7,17 +7,18 @@ fish, getconf, nix-update-script, + nushell, zsh, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "bat-extras"; - version = "2024.08.24"; + version = "2024.08.24-unstable-2025-02-22"; src = fetchFromGitHub { owner = "eth-p"; repo = "bat-extras"; - tag = "v${version}"; - hash = "sha256-xkND/w6UNC58dC8WrsifwjqU9ZI4yUUq+ZljkhhUNT8="; + rev = "3860f0f1481f1d0e117392030f55ef19cc018ee4"; + hash = "sha256-9TEq/LzE1Pty1Z3WFWR/TaNNKPp2LGBr0jzGBkOEGQo="; fetchSubmodules = true; }; @@ -26,8 +27,6 @@ stdenv.mkDerivation rec { dontConfigure = true; - patches = [ ../patches/disable-theme-tests.patch ]; - postPatch = '' patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh ''; @@ -43,6 +42,7 @@ stdenv.mkDerivation rec { nativeCheckInputs = [ bash fish + nushell zsh ] ++ (lib.optionals stdenv.hostPlatform.isDarwin [ getconf ]); @@ -72,7 +72,7 @@ stdenv.mkDerivation rec { # The per-script derivations will go ahead and patch the files they actually install. dontPatchShebangs = true; - passthru.updateScript = nix-update-script { }; + passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; meta = { description = "Bash scripts that integrate bat with various command line tools"; diff --git a/pkgs/tools/misc/bat-extras/patches/batpipe-skip-detection-tests.patch b/pkgs/tools/misc/bat-extras/patches/batpipe-skip-detection-tests.patch new file mode 100644 index 000000000000..b051545647a8 --- /dev/null +++ b/pkgs/tools/misc/bat-extras/patches/batpipe-skip-detection-tests.patch @@ -0,0 +1,20 @@ +diff --git a/test/suite/batpipe.sh b/test/suite/batpipe.sh +index e834f6e..da87411 100644 +--- a/test/suite/batpipe.sh ++++ b/test/suite/batpipe.sh +@@ -12,6 +12,7 @@ test:detected_bash_shell() { + + test:detected_fish_shell() { + description "Test it can detect a fish shell." ++ skip "This test fails in the Nix sandbox" + + # Note: We don't use bash's `-c` option when testing with a fake fish shell. + # Bash `-c` will automatically exec() into the last process, which loses the +@@ -28,6 +29,7 @@ test:detected_fish_shell() { + + test:detected_nu_shell() { + description "Test it can detect a nushell shell." ++ skip "This test fails in the Nix sandbox" + + # Note: We don't use bash's `-c` option when testing with a fake nu shell. + # Bash `-c` will automatically exec() into the last process, which loses the diff --git a/pkgs/tools/misc/bat-extras/patches/batpipe-skip-outdated-test.patch b/pkgs/tools/misc/bat-extras/patches/batpipe-skip-outdated-test.patch new file mode 100644 index 000000000000..6ca368863d6c --- /dev/null +++ b/pkgs/tools/misc/bat-extras/patches/batpipe-skip-outdated-test.patch @@ -0,0 +1,12 @@ +diff --git a/test/suite/batpipe.sh b/test/suite/batpipe.sh +index e834f6e..2d9354d 100644 +--- a/test/suite/batpipe.sh ++++ b/test/suite/batpipe.sh +@@ -51,6 +51,7 @@ test:viewer_gzip() { + + test:batpipe_term_width() { + description "Test support for BATPIPE_TERM_WIDTH" ++ skip "Fails on a newer version of bat" + snapshot STDOUT + + export BATPIPE=color diff --git a/pkgs/tools/misc/bat-extras/patches/disable-theme-tests.patch b/pkgs/tools/misc/bat-extras/patches/disable-theme-tests.patch deleted file mode 100644 index 695d350a2a30..000000000000 --- a/pkgs/tools/misc/bat-extras/patches/disable-theme-tests.patch +++ /dev/null @@ -1,42 +0,0 @@ -Subject: [PATCH] skip tests depending on color theme -=================================================================== -diff --git a/test/suite/batpipe.sh b/test/suite/batpipe.sh ---- a/test/suite/batpipe.sh (revision 36c77c171cc71b2ff3ec4cb781aa16ca3ad258b1) -+++ b/test/suite/batpipe.sh (date 1736621098865) -@@ -29,6 +29,7 @@ - test:batpipe_term_width() { - description "Test support for BATPIPE_TERM_WIDTH" - snapshot STDOUT -+ skip "bat-extras does not support `--theme` flag" - - export BATPIPE=color - export BATPIPE_DEBUG_PARENT_EXECUTABLE=less -Index: test/suite/batgrep.sh -=================================================================== -diff --git a/test/suite/batgrep.sh b/test/suite/batgrep.sh ---- a/test/suite/batgrep.sh (revision 36c77c171cc71b2ff3ec4cb781aa16ca3ad258b1) -+++ b/test/suite/batgrep.sh (date 1736621086239) -@@ -58,6 +58,7 @@ - description "Snapshot test for colored output." - snapshot stdout - snapshot stderr -+ skip "bat-extras does not support `--theme` flag" - - require_rg - -@@ -118,6 +119,7 @@ - description "Should respect the BAT_STYLE variable." - snapshot stdout - snapshot stderr -+ skip "bat-extras does not support `--theme` flag" - - require_rg - -@@ -128,6 +130,7 @@ - description "Snapshot test for output without separator" - snapshot stdout - snapshot stderr -+ skip "bat-extras does not support `--theme` flag" - - require_rg -