From a4637e2bb15a86bd96faaf75914dc8d0dfcc6294 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 27 Nov 2022 21:51:15 +0100 Subject: l: allow piping into sxiv --- lass/2configs/baseX.nix | 4 +--- lass/5pkgs/sxiv/default.nix | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 lass/5pkgs/sxiv/default.nix diff --git a/lass/2configs/baseX.nix b/lass/2configs/baseX.nix index 9b2b58f2..efd6c8a2 100644 --- a/lass/2configs/baseX.nix +++ b/lass/2configs/baseX.nix @@ -79,9 +79,7 @@ in { powertop rxvt-unicode sshvnc - (pkgs.writers.writeDashBin "sxiv" '' - ${pkgs.nsxiv}/bin/nsxiv "$@" - '') + sxiv nsxiv taskwarrior termite diff --git a/lass/5pkgs/sxiv/default.nix b/lass/5pkgs/sxiv/default.nix new file mode 100644 index 00000000..04fc1c3f --- /dev/null +++ b/lass/5pkgs/sxiv/default.nix @@ -0,0 +1,27 @@ +{ 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 +'' -- cgit v1.2.3