#!/bin/sh
-zstdcat "$@" | less
+
+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"
+exec less "$@"
TESTDIR="$SCRIPT_DIR/../tests"
UNAME=$(uname)
ZSTDGREP="$PRGDIR/zstdgrep"
+ZSTDLESS="$PRGDIR/zstdless"
detectedTerminal=false
if [ -t 0 ] && [ -t 1 ]
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"
+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
mkdir -p precompressedFilterTestDir