nix/scripts/doc
2026-02-08 18:22:31 -05:00

36 lines
748 B
Bash
Executable file

#!/bin/sh
require() {
for cmd in "$@"; do
command -v "$cmd" >/dev/null 2>&1 || {
echo "doc: missing dependency: $cmd" >&2
exit 1
}
done
}
require sioyek
dir="$HOME/doc"
test -d "$dir" || exit
if [ "$XDG_SESSION_TYPE" = x11 ]; then
require dmenu
picker() { dmenu -i -l 10 -p "Select file or folder: "; }
else
require rofi
picker() { rofi -dmenu -i -l 10 -p "Select file or folder"; }
fi
while :; do
choice="$(find "$dir" -not -path "$dir/.*" -mindepth 1 -maxdepth 1 \( -type d -printf "%f/\n" -o -type f -printf "%f\n" \) | picker)"
[ -n "$choice" ] || break
if [ -d "$dir/${choice%/}" ]; then
dir="$dir/${choice%/}"
elif [ -f "$dir/$choice" ]; then
sioyek "$dir/$choice" &
break
fi
done