blob: 16e4453ec1f0f610b21de6048b574dc05b421e13 (
plain) (
tree)
|
|
#!/bin/sh
menu="bemenu"
cache_dir="${XDG_CACHE_HOME:-"$HOME/.cache"}"
cache="$cache_dir/bemenu_run"
uptodate()
{
IFS=:
for path in $PATH
do
test "$path" -nt "$cache" &&
return 1
done
return 0
}
get_bin()
{
IFS=:
for path in $PATH
do
for bin in "$path"/*
do
[ -x "$bin" ] &&
echo "${bin##*/}"
done
done
}
main()
{
[ -d "$cache_dir" ] ||
mkdir -p "$cache_dir"
[ -z "$WAYLAND_DISPLAY" ] &&
menu="dmenu"
if [ -f "$cache" ] && uptodate
then
"$menu" -p ' ' "$@" < "$cache" | ${SHELL:-"/bin/sh"} &
else
get_bin | sort -u | tee "$cache" | "$menu" -p ' ' "$@" | ${SHELL:-"/bin/sh"} &
fi
}
main "$@"
|