diff options
Diffstat (limited to 'sway/.local/bin/wmenu_path')
-rwxr-xr-x | sway/.local/bin/wmenu_path | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sway/.local/bin/wmenu_path b/sway/.local/bin/wmenu_path new file mode 100755 index 0000000..2cda132 --- /dev/null +++ b/sway/.local/bin/wmenu_path @@ -0,0 +1,34 @@ +#!/bin/sh + +cache_dir="${XDG_CACHE_HOME:-"$HOME/.cache"}" +cache="$cache_dir/wmenu_run" + +uptodate() { + IFS=: + for path in $PATH; do + if test "$path" -nt "$cache"; then + return 1 + fi + done + + return 0 +} + +get_bin() { + IFS=: + for path in $PATH; do + for bin in "$path"/*; do + if [ -x "$bin" ]; then + echo "${bin##*/}" + fi + done + done +} + +[ ! -e "$cache_dir" ] && mkdir -p "$cache_dir" + +if [ ! -e "$cache" ] || ! uptodate; then + get_bin | sort -u | tee "$cache" +else + cat "$cache" +fi |