Peter MacKenzie-Basaraba 71500c1699
Fix: Replace bashism with POSIX-compliant pattern matching
Replaced the bash specific conditional [[ $base" == .* ]] with a case statement.

Not sure why my first commit ran on my machine without error.
2025-04-06 11:24:15 -06:00

19 lines
831 B
Bash
Executable File

#!/bin/sh
# When I open an image from the file manager in nsxiv (the image viewer), I want
# to be able to press the next/previous keys to key through the rest of the
# images in the same directory. This script "rotates" the content of a
# directory based on the first chosen file, so that if I open the 15th image,
# if I press next, it will go to the 16th etc. Autistic, I know, but this is
# one of the reasons that nsxiv is great for being able to read standard input.
[ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1
base="$(basename "$1")"
case "$base" in
.*) ls_opt="ls -a" ;;
*) ls_opt="ls" ;;
esac
$ls_opt "$PWD" | awk -v BASE="$base" 'BEGIN { lines = ""; m = 0; } { if ($0 == BASE) { m = 1; } } { if (!m) { if (lines) { lines = lines"\n"; } lines = lines""$0; } else { print $0; } } END { print lines; }'