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.
Files changed (3) hide show
  1. package/README.md +4 -0
  2. package/fpf +76 -10
  3. 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.39"
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="${FPF_ENABLE_QUERY_CACHE:-0}"
2497
- local bun_cache_ttl="${FPF_BUN_QUERY_CACHE_TTL:-900}"
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 ! [[ "${bun_cache_ttl}" =~ ^[0-9]+$ ]]; then
2512
- bun_cache_ttl=900
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
- if [[ "${manager}" == "bun" ]]; then
2521
- query_cache_enabled="1"
2522
- fi
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 [[ "${manager}" != "bun" ]] || cache_is_fresh_with_ttl "${key}" "${bun_cache_ttl}"; then
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fpf-cli",
3
- "version": "1.6.39",
3
+ "version": "1.6.40",
4
4
  "description": "Cross-platform fuzzy package finder powered by fzf",
5
5
  "bin": {
6
6
  "fpf": "fpf"