fpf-cli 1.6.39 → 1.6.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/fpf +76 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -102,5 +102,9 @@ Installed packages are marked with `*` in the result list.
|
|
|
102
102
|
- Set `FPF_LOADING_INDICATOR=0` to disable the pre-search loading indicator.
|
|
103
103
|
- `FPF_RELOAD_MIN_CHARS`: minimum query length before live reload (default `2`)
|
|
104
104
|
- `FPF_RELOAD_DEBOUNCE`: reload debounce seconds (default `0.12`)
|
|
105
|
+
- `FPF_ENABLE_QUERY_CACHE`: `auto` (default), `1`, or `0` (`auto` enables query cache for `apt`, `brew`, `pacman`, and `bun`)
|
|
106
|
+
- `FPF_QUERY_CACHE_TTL`: default query-cache TTL seconds for heavy manager caches (default `300`)
|
|
107
|
+
- `FPF_APT_QUERY_CACHE_TTL`, `FPF_BREW_QUERY_CACHE_TTL`, `FPF_PACMAN_QUERY_CACHE_TTL`: per-manager query-cache TTL overrides
|
|
108
|
+
- `FPF_BUN_QUERY_CACHE_TTL`: Bun query-cache TTL (default `900`)
|
|
105
109
|
- `FPF_DISABLE_INSTALLED_CACHE=1` disables installed-package marker cache
|
|
106
110
|
- `FPF_INSTALLED_CACHE_TTL`: installed-package marker cache freshness window in seconds (default `300`, set `0` to always refresh)
|
package/fpf
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
set -euo pipefail
|
|
4
4
|
|
|
5
5
|
SCRIPT_NAME="fpf"
|
|
6
|
-
SCRIPT_VERSION="1.6.
|
|
6
|
+
SCRIPT_VERSION="1.6.40"
|
|
7
7
|
TMP_ROOT="${TMPDIR:-/tmp}/fpf"
|
|
8
8
|
SESSION_TMP_ROOT=""
|
|
9
9
|
HELP_FILE=""
|
|
@@ -25,6 +25,61 @@ query_cache_flags() {
|
|
|
25
25
|
printf "%s" "query_limit=${FPF_QUERY_RESULT_LIMIT:-0};per_manager_limit=${FPF_QUERY_PER_MANAGER_LIMIT:-40};no_query_limit=${FPF_NO_QUERY_RESULT_LIMIT:-120};no_query_npm_limit=${FPF_NO_QUERY_NPM_LIMIT:-120}"
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
query_cache_default_enabled_for_manager() {
|
|
29
|
+
local manager="$1"
|
|
30
|
+
|
|
31
|
+
case "${manager}" in
|
|
32
|
+
apt|brew|pacman|bun)
|
|
33
|
+
return 0
|
|
34
|
+
;;
|
|
35
|
+
*)
|
|
36
|
+
return 1
|
|
37
|
+
;;
|
|
38
|
+
esac
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
query_cache_ttl_seconds_for_manager() {
|
|
42
|
+
local manager="$1"
|
|
43
|
+
local default_ttl="${FPF_QUERY_CACHE_TTL:-300}"
|
|
44
|
+
local manager_ttl="0"
|
|
45
|
+
|
|
46
|
+
if ! [[ "${default_ttl}" =~ ^[0-9]+$ ]]; then
|
|
47
|
+
default_ttl=300
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
case "${manager}" in
|
|
51
|
+
bun)
|
|
52
|
+
manager_ttl="${FPF_BUN_QUERY_CACHE_TTL:-900}"
|
|
53
|
+
if ! [[ "${manager_ttl}" =~ ^[0-9]+$ ]]; then
|
|
54
|
+
manager_ttl=900
|
|
55
|
+
fi
|
|
56
|
+
;;
|
|
57
|
+
apt)
|
|
58
|
+
manager_ttl="${FPF_APT_QUERY_CACHE_TTL:-${default_ttl}}"
|
|
59
|
+
if ! [[ "${manager_ttl}" =~ ^[0-9]+$ ]]; then
|
|
60
|
+
manager_ttl="${default_ttl}"
|
|
61
|
+
fi
|
|
62
|
+
;;
|
|
63
|
+
brew)
|
|
64
|
+
manager_ttl="${FPF_BREW_QUERY_CACHE_TTL:-${default_ttl}}"
|
|
65
|
+
if ! [[ "${manager_ttl}" =~ ^[0-9]+$ ]]; then
|
|
66
|
+
manager_ttl="${default_ttl}"
|
|
67
|
+
fi
|
|
68
|
+
;;
|
|
69
|
+
pacman)
|
|
70
|
+
manager_ttl="${FPF_PACMAN_QUERY_CACHE_TTL:-${default_ttl}}"
|
|
71
|
+
if ! [[ "${manager_ttl}" =~ ^[0-9]+$ ]]; then
|
|
72
|
+
manager_ttl="${default_ttl}"
|
|
73
|
+
fi
|
|
74
|
+
;;
|
|
75
|
+
*)
|
|
76
|
+
manager_ttl=0
|
|
77
|
+
;;
|
|
78
|
+
esac
|
|
79
|
+
|
|
80
|
+
printf "%s" "${manager_ttl}"
|
|
81
|
+
}
|
|
82
|
+
|
|
28
83
|
log() {
|
|
29
84
|
printf "%s\n" "$*" >&2
|
|
30
85
|
}
|
|
@@ -2493,8 +2548,10 @@ manager_search_entries_uncached() {
|
|
|
2493
2548
|
manager_search_entries() {
|
|
2494
2549
|
local manager="$1"
|
|
2495
2550
|
local query="$2"
|
|
2496
|
-
local query_cache_enabled="
|
|
2497
|
-
local
|
|
2551
|
+
local query_cache_enabled="0"
|
|
2552
|
+
local query_cache_setting="${FPF_ENABLE_QUERY_CACHE:-auto}"
|
|
2553
|
+
local query_cache_ttl="0"
|
|
2554
|
+
local bun_cache_ttl="900"
|
|
2498
2555
|
local bypass_query_cache="${FPF_BYPASS_QUERY_CACHE:-0}"
|
|
2499
2556
|
local flags
|
|
2500
2557
|
local key
|
|
@@ -2507,19 +2564,28 @@ manager_search_entries() {
|
|
|
2507
2564
|
initialize_cache_root
|
|
2508
2565
|
|
|
2509
2566
|
flags="$(query_cache_flags)"
|
|
2567
|
+
query_cache_setting="$(trim_whitespace "${query_cache_setting}")"
|
|
2568
|
+
query_cache_setting="$(printf "%s" "${query_cache_setting}" | tr '[:upper:]' '[:lower:]')"
|
|
2569
|
+
query_cache_ttl="$(query_cache_ttl_seconds_for_manager "${manager}")"
|
|
2510
2570
|
|
|
2511
|
-
if
|
|
2512
|
-
bun_cache_ttl=
|
|
2571
|
+
if [[ "${manager}" == "bun" ]]; then
|
|
2572
|
+
bun_cache_ttl="${query_cache_ttl}"
|
|
2513
2573
|
fi
|
|
2514
2574
|
|
|
2515
2575
|
case "${bypass_query_cache}" in
|
|
2516
2576
|
1|true|yes|on)
|
|
2517
|
-
query_cache_enabled="0"
|
|
2518
2577
|
;;
|
|
2519
2578
|
*)
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2579
|
+
case "${query_cache_setting}" in
|
|
2580
|
+
1|true|yes|on)
|
|
2581
|
+
query_cache_enabled="1"
|
|
2582
|
+
;;
|
|
2583
|
+
auto|"")
|
|
2584
|
+
if query_cache_default_enabled_for_manager "${manager}"; then
|
|
2585
|
+
query_cache_enabled="1"
|
|
2586
|
+
fi
|
|
2587
|
+
;;
|
|
2588
|
+
esac
|
|
2523
2589
|
;;
|
|
2524
2590
|
esac
|
|
2525
2591
|
|
|
@@ -2558,7 +2624,7 @@ manager_search_entries() {
|
|
|
2558
2624
|
fi
|
|
2559
2625
|
|
|
2560
2626
|
if [[ "${query_cache_enabled}" == "1" && -s "${cache_file}" ]]; then
|
|
2561
|
-
if [[ "${
|
|
2627
|
+
if [[ "${query_cache_ttl}" -eq 0 ]] || cache_is_fresh_with_ttl "${key}" "${query_cache_ttl}"; then
|
|
2562
2628
|
cat "${cache_file}"
|
|
2563
2629
|
return
|
|
2564
2630
|
fi
|