From 6aa1d08a1ca86f46a44ed7afe802dd638c793400 Mon Sep 17 00:00:00 2001 From: Binh Vo Date: Fri, 3 Dec 2021 15:31:33 -0500 Subject: [PATCH 1/4] Change zstdless behavior to align with zless --- programs/zstdless | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/programs/zstdless b/programs/zstdless index 893799e7d95..10e7695473e 100755 --- a/programs/zstdless +++ b/programs/zstdless @@ -1,2 +1,6 @@ #!/bin/sh -zstdcat "$@" | less + +# TODO: Address quirks and bugs tied to old versions of less, provide a mechanism to pass flags directly to zstd + +export LESSOPEN="|zstd -cdfq %s" +less "$@" From e59e72bb3d2143bfeedea3368d333b89b540a2e8 Mon Sep 17 00:00:00 2001 From: Binh Vo Date: Wed, 19 Jan 2022 21:43:23 -0500 Subject: [PATCH 2/4] Add simple tests --- tests/playTests.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/playTests.sh b/tests/playTests.sh index b7a3d88a817..5dcf0deb8f6 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -89,6 +89,7 @@ PRGDIR="$SCRIPT_DIR/../programs" TESTDIR="$SCRIPT_DIR/../tests" UNAME=$(uname) ZSTDGREP="$PRGDIR/zstdgrep" +ZSTDLESS="$PRGDIR/zstdless" detectedTerminal=false if [ -t 0 ] && [ -t 1 ] @@ -322,6 +323,15 @@ ZCAT=./zstdcat "$ZSTDGREP" 2>&1 "1234" tmp_grep_bad.zst && die "Should have fail ZCAT=./zstdcat "$ZSTDGREP" 2>&1 "1234" tmp_grep_bad.zst | grep "No such file or directory" || true rm -f tmp_grep* +println "\n===> zstdless tests" +rm -f tmp_less +echo "1234" > tmp_less +zstd -f tmp_less +lines=$("$ZSTDLESS" 2>&1 tmp_less.zst | wc -l) +test 1 -eq $lines +"$ZSTDLESS" 2>&1 tmp_less_bad.zst | grep "No such file or directory" || true +rm -f tmp_less* + println "\n===> --exclude-compressed flag" rm -rf precompressedFilterTestDir mkdir -p precompressedFilterTestDir From c439f5df65a2d470bf46a0a0e907465deb9d43ac Mon Sep 17 00:00:00 2001 From: Binh Vo Date: Fri, 21 Jan 2022 11:15:14 -0500 Subject: [PATCH 3/4] Additional test and restore reverted commit --- programs/zstdless | 6 ++++-- tests/playTests.sh | 10 +++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/programs/zstdless b/programs/zstdless index 10e7695473e..17726a4f6e1 100755 --- a/programs/zstdless +++ b/programs/zstdless @@ -1,6 +1,8 @@ #!/bin/sh +zstd=${ZSTD:-zstd} + # TODO: Address quirks and bugs tied to old versions of less, provide a mechanism to pass flags directly to zstd -export LESSOPEN="|zstd -cdfq %s" -less "$@" +export LESSOPEN="|-${zstd} -cdfq %s" +exec less "$@" diff --git a/tests/playTests.sh b/tests/playTests.sh index 5dcf0deb8f6..4bc6c3fb232 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -324,12 +324,16 @@ ZCAT=./zstdcat "$ZSTDGREP" 2>&1 "1234" tmp_grep_bad.zst | grep "No such file or rm -f tmp_grep* println "\n===> zstdless tests" -rm -f tmp_less +ln -sf "$ZSTD_BIN" zstd +rm -f tmp_less* echo "1234" > tmp_less zstd -f tmp_less -lines=$("$ZSTDLESS" 2>&1 tmp_less.zst | wc -l) +lines=$(ZSTD=./zstd "$ZSTDLESS" 2>&1 tmp_less.zst | wc -l) test 1 -eq $lines -"$ZSTDLESS" 2>&1 tmp_less_bad.zst | grep "No such file or directory" || true +ZSTD=./zstd "$ZSTDLESS" -f tmp_less.zst > tmp_less_regenerated +cat tmp_less_regenerated +$DIFF tmp_less tmp_less_regenerated +ZSTD=./zstd "$ZSTDLESS" 2>&1 tmp_less_bad.zst | grep "No such file or directory" || true rm -f tmp_less* println "\n===> --exclude-compressed flag" From 332db9d1edcf0427a226a26e852fa7b453939fb2 Mon Sep 17 00:00:00 2001 From: Binh Vo Date: Fri, 21 Jan 2022 16:48:35 -0500 Subject: [PATCH 4/4] Test fixes --- tests/playTests.sh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tests/playTests.sh b/tests/playTests.sh index 4bc6c3fb232..041deb1eb18 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -324,17 +324,18 @@ ZCAT=./zstdcat "$ZSTDGREP" 2>&1 "1234" tmp_grep_bad.zst | grep "No such file or rm -f tmp_grep* println "\n===> zstdless tests" -ln -sf "$ZSTD_BIN" zstd -rm -f tmp_less* -echo "1234" > tmp_less -zstd -f tmp_less -lines=$(ZSTD=./zstd "$ZSTDLESS" 2>&1 tmp_less.zst | wc -l) -test 1 -eq $lines -ZSTD=./zstd "$ZSTDLESS" -f tmp_less.zst > tmp_less_regenerated -cat tmp_less_regenerated -$DIFF tmp_less tmp_less_regenerated -ZSTD=./zstd "$ZSTDLESS" 2>&1 tmp_less_bad.zst | grep "No such file or directory" || true -rm -f tmp_less* +if [ -n "$(which less)" ]; then + ln -sf "$ZSTD_BIN" zstd + rm -f tmp_less* + echo "1234" > tmp_less + zstd -f tmp_less + lines=$(ZSTD=./zstd "$ZSTDLESS" 2>&1 tmp_less.zst | wc -l) + test 1 -eq $lines + ZSTD=./zstd "$ZSTDLESS" -f tmp_less.zst > tmp_less_regenerated + $DIFF tmp_less tmp_less_regenerated + ZSTD=./zstd "$ZSTDLESS" 2>&1 tmp_less_bad.zst | grep "No such file or directory" || die + rm -f tmp_less* +fi println "\n===> --exclude-compressed flag" rm -rf precompressedFilterTestDir