fpf-cli 1.6.18 → 1.6.20
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/fpf +56 -3
- package/package.json +1 -1
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.20"
|
|
7
7
|
TMP_ROOT="${TMPDIR:-/tmp}/fpf"
|
|
8
8
|
SESSION_TMP_ROOT=""
|
|
9
9
|
HELP_FILE=""
|
|
@@ -92,6 +92,36 @@ normalize_cache_query() {
|
|
|
92
92
|
}'
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
+
trim_whitespace() {
|
|
96
|
+
local value="$1"
|
|
97
|
+
value="${value#"${value%%[![:space:]]*}"}"
|
|
98
|
+
value="${value%"${value##*[![:space:]]}"}"
|
|
99
|
+
printf "%s" "${value}"
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
selection_debug_enabled() {
|
|
103
|
+
case "${FPF_DEBUG_SELECTION:-0}" in
|
|
104
|
+
1|true|yes|on)
|
|
105
|
+
return 0
|
|
106
|
+
;;
|
|
107
|
+
*)
|
|
108
|
+
return 1
|
|
109
|
+
;;
|
|
110
|
+
esac
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
log_selection_parse_skip() {
|
|
114
|
+
local line_number="$1"
|
|
115
|
+
local reason="$2"
|
|
116
|
+
local raw_line="$3"
|
|
117
|
+
local raw_repr=""
|
|
118
|
+
|
|
119
|
+
selection_debug_enabled || return 0
|
|
120
|
+
|
|
121
|
+
printf -v raw_repr "%q" "${raw_line}"
|
|
122
|
+
log "Debug(selection): skipped line ${line_number}: ${reason}; raw=${raw_repr}"
|
|
123
|
+
}
|
|
124
|
+
|
|
95
125
|
platform_cache_token() {
|
|
96
126
|
uname -s | tr '[:upper:]' '[:lower:]'
|
|
97
127
|
}
|
|
@@ -2795,6 +2825,7 @@ run_fuzzy_selector() {
|
|
|
2795
2825
|
fzf_args+=(--bind="ctrl-r:reload:${reload_cmd}")
|
|
2796
2826
|
fi
|
|
2797
2827
|
elif [[ -n "${reload_cmd}" ]]; then
|
|
2828
|
+
fzf_args+=(--bind="change:reload:${reload_cmd}")
|
|
2798
2829
|
fzf_args+=(--bind="ctrl-r:reload:${reload_cmd}")
|
|
2799
2830
|
fi
|
|
2800
2831
|
|
|
@@ -3035,17 +3066,39 @@ main() {
|
|
|
3035
3066
|
local selected_managers=()
|
|
3036
3067
|
local selected_packages=()
|
|
3037
3068
|
local selected_line
|
|
3069
|
+
local selected_line_number=0
|
|
3070
|
+
local selected_parse_failures=0
|
|
3038
3071
|
local selected_manager
|
|
3039
3072
|
local selected_pkg
|
|
3073
|
+
local normalized_selected_manager
|
|
3040
3074
|
while IFS= read -r selected_line; do
|
|
3075
|
+
selected_line_number=$((selected_line_number + 1))
|
|
3041
3076
|
[[ -n "${selected_line}" ]] || continue
|
|
3042
3077
|
IFS=$'\t' read -r selected_manager selected_pkg _ <<<"${selected_line}"
|
|
3043
|
-
|
|
3044
|
-
|
|
3078
|
+
selected_manager="$(trim_whitespace "${selected_manager}")"
|
|
3079
|
+
selected_pkg="$(trim_whitespace "${selected_pkg}")"
|
|
3080
|
+
|
|
3081
|
+
if [[ -z "${selected_manager}" || -z "${selected_pkg}" ]]; then
|
|
3082
|
+
selected_parse_failures=$((selected_parse_failures + 1))
|
|
3083
|
+
log_selection_parse_skip "${selected_line_number}" "missing manager/package fields" "${selected_line}"
|
|
3084
|
+
continue
|
|
3085
|
+
fi
|
|
3086
|
+
|
|
3087
|
+
normalized_selected_manager="$(normalize_manager "${selected_manager}")"
|
|
3088
|
+
if ! manager_supported "${normalized_selected_manager}"; then
|
|
3089
|
+
selected_parse_failures=$((selected_parse_failures + 1))
|
|
3090
|
+
log_selection_parse_skip "${selected_line_number}" "unsupported manager '${normalized_selected_manager}'" "${selected_line}"
|
|
3091
|
+
continue
|
|
3092
|
+
fi
|
|
3093
|
+
|
|
3094
|
+
selected_managers+=("${normalized_selected_manager}")
|
|
3045
3095
|
selected_packages+=("${selected_pkg}")
|
|
3046
3096
|
done <<<"${selected}"
|
|
3047
3097
|
|
|
3048
3098
|
if [[ "${#selected_packages[@]}" -eq 0 ]]; then
|
|
3099
|
+
if [[ "${selected_parse_failures}" -gt 0 ]] && selection_debug_enabled; then
|
|
3100
|
+
log "Debug(selection): no executable entries after parsing ${selected_parse_failures} selected line(s)"
|
|
3101
|
+
fi
|
|
3049
3102
|
log "Selection canceled"
|
|
3050
3103
|
exit 0
|
|
3051
3104
|
fi
|