28 lines
612 B
Nix
28 lines
612 B
Nix
{ nsxiv, writers }:
|
|
|
|
writers.writeDashBin "sxiv" ''
|
|
set -efu
|
|
tmpfile="''${TMPDIR:-/tmp}/nsxiv_pipe_$$"
|
|
trap 'rm -f -- $tmpfile' EXIT
|
|
|
|
if [ "$#" -eq 0 ]; then
|
|
if [ -t 0 ]; then
|
|
echo "sxiv: No arguments provided" >&2; exit 1
|
|
else
|
|
# Consume stdin and put it in the temporal file
|
|
cat > "$tmpfile"
|
|
fi
|
|
fi
|
|
|
|
for arg in "$@"; do
|
|
# if it's a pipe then drain it to $tmpfile
|
|
[ -p "$arg" ] && cat "$arg" > "$tmpfile"
|
|
done
|
|
|
|
if [ -s "$tmpfile" ]; then
|
|
${nsxiv}/bin/nsxiv -q "$@" "$tmpfile" # -q to silence warnings
|
|
else
|
|
${nsxiv}/bin/nsxiv "$@" # fallback
|
|
fi
|
|
''
|