wmenu/wmenu_run
2024-04-07 08:51:57 -04:00

35 lines
503 B
Bash
Executable file

#!/bin/sh
cachedir="${XDG_CACHE_HOME:-"$HOME/.cache"}"
cache="$cachedir/wmenu_run"
[ -d "$cachedir" ] || mkdir -p "$cachedir"
uptodate() {
[ -f "$cache" ] || return 1
IFS=:
for path in $PATH; do
# non-POSIX
test "$path" -nt "$cache" && return 1
done
return 0
}
bins() {
IFS=:
for path in $PATH; do
for bin in "$path"/*; do
[ -x "$bin" ] && echo "${bin##*/}"
done
done
}
path() {
if uptodate; then
cat "$cache"
else
bins | sort -u | tee "$cache"
fi
}
path | wmenu -x "$@"