summaryrefslogtreecommitdiff
path: root/nsxiv_utils/nsxiv-pipe
diff options
context:
space:
mode:
Diffstat (limited to 'nsxiv_utils/nsxiv-pipe')
-rwxr-xr-xnsxiv_utils/nsxiv-pipe24
1 files changed, 24 insertions, 0 deletions
diff --git a/nsxiv_utils/nsxiv-pipe b/nsxiv_utils/nsxiv-pipe
new file mode 100755
index 0000000..31a5216
--- /dev/null
+++ b/nsxiv_utils/nsxiv-pipe
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+tmpfile="${TMPDIR:-/tmp}/nsxiv_pipe_$$"
+trap 'rm -f -- $tmpfile' EXIT
+
+if [ "$#" -eq 0 ]; then
+ if [ -t 0 ]; then
+ echo "nsxiv-pipe: 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 -q "$@" "$tmpfile" # -q to silence warnings
+else
+ nsxiv "$@" # fallback
+fi