aboutsummaryrefslogtreecommitdiff
path: root/.local
diff options
context:
space:
mode:
authortdro <tdro@users.noreply.github.com>2020-12-04 03:45:03 -0500
committertdro <tdro@users.noreply.github.com>2020-12-04 04:59:34 -0500
commitf2eb4b2d98e857b09e807ff07d238512a0d602e7 (patch)
treed47b0c3390464235b7123a2e8874ac9e7c1a4249 /.local
parent3de9b02566580b0e23471271399ced5894c853eb (diff)
downloaddotfiles-f2eb4b2d98e857b09e807ff07d238512a0d602e7.tar.gz
dotfiles-f2eb4b2d98e857b09e807ff07d238512a0d602e7.tar.bz2
dotfiles-f2eb4b2d98e857b09e807ff07d238512a0d602e7.zip
.local/bin/scripts/file-search: Increase reach and speed
Diffstat (limited to '.local')
-rwxr-xr-x.local/bin/scripts/file-search42
1 files changed, 26 insertions, 16 deletions
diff --git a/.local/bin/scripts/file-search b/.local/bin/scripts/file-search
index 339c7d5..bb744e5 100755
--- a/.local/bin/scripts/file-search
+++ b/.local/bin/scripts/file-search
@@ -1,18 +1,28 @@
#!/bin/sh -eu
-xdg-open "$(locate -ie \
- \
-"$HOME"/.vim \
-"$HOME"/Music \
-"$HOME"/Books \
-"$HOME"/Videos \
-"$HOME"/Documents \
-"$HOME"/Downloads \
-"$HOME"/Pictures \
-"$HOME"/.local/bin \
-"$HOME"/.config/awesome \
-"$HOME"/.config/systemd \
-"$HOME"/.local/share/Trash \
-"$HOME"/.local/share/applications \
- \
-| rofi -font "ubuntu 12" -padding 20 -dmenu -i -p 'Files')"
+cache=/tmp/file_search_results.cache
+append() { find "$1" -maxdepth 1 -printf "%p\n"; }
+appendRecursive() { find "$1" -printf "%p\n"; }
+removeDuplicates() { awk '!visited[$0]++' "$1" | sponge "$1"; }
+
+{ [ ! -f "$cache" ] \
+ || [ "${1:-}" = "update" ]; } \
+ && locate -ie \
+ "$HOME"/.vim \
+ "$HOME"/Music \
+ "$HOME"/Books \
+ "$HOME"/Videos \
+ "$HOME"/Documents \
+ "$HOME"/Downloads \
+ "$HOME"/Pictures \
+ "$HOME"/.local/bin \
+ "$HOME"/.config/awesome \
+ "$HOME"/.config/systemd \
+ "$HOME"/.local/share/Trash \
+ "$HOME"/.local/share/applications \
+ > "$cache" \
+ && { append "$HOME"; } >> "$cache"
+
+[ "${1:-}" = "update" ] && removeDuplicates "$cache" && exit;
+
+xdg-open "$(rofi -font "ubuntu 12" -matching regex -padding 20 -dmenu -i -p 'Files' < "$cache")"