|
@@ -105,6 +105,37 @@ fzf_rw0_inplace_preview () {
|
|
|
&& :
|
|
|
}
|
|
|
|
|
|
+awk_strip_first_path_part_script () {
|
|
|
+ cat <<'EOF'
|
|
|
+{
|
|
|
+ for (i=2; i<=NF; i++)
|
|
|
+ printf "%s%s", $(i), (i<NF ? OFS : ORS)
|
|
|
+}
|
|
|
+EOF
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+awk_rw0_strip_first_path_part () {
|
|
|
+ # NOTE: ./a/b/c -> a/b/c (null delimited)
|
|
|
+ awk \
|
|
|
+ -v FS='/' -v RS='\0' \
|
|
|
+ -v OFS='/' -v ORS='\0' \
|
|
|
+ "$(awk_strip_first_path_part_script)" \
|
|
|
+ && :
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+awk_rw0_add_prefix () {
|
|
|
+ # NOTE: some-string -> <prefix>some-string (null delimited)
|
|
|
+ : "${1?awk_rw0_add_prefix requires exactly one positional arg}"
|
|
|
+ [ "${1+DefinedMaybeEmpty}" == "DefinedMaybeEmpty" ]
|
|
|
+ awk \
|
|
|
+ -v prefix="$1/" \
|
|
|
+ -v RS='\0' \
|
|
|
+ -v ORS='\n' '{print prefix $0}' \
|
|
|
+ && :
|
|
|
+}
|
|
|
+
|
|
|
if "$LIST_MODE"
|
|
|
then
|
|
|
fzf_query=()
|
|
@@ -127,8 +158,8 @@ then
|
|
|
| sort -zV \
|
|
|
| head -zn "${NUM:--0}" \
|
|
|
| fzf_rw0_inplace_preview \
|
|
|
- | awk -v RS='\0' -v FS='/' -v OFS='/' -v ORS='\0' '{for (i=2; i<=NF; i++) printf "%s%s", $(i), (i<NF ? OFS : ORS)}' \
|
|
|
- | awk -v prefix="$LOG_ROOT/" -v RS='\0' -v ORS='\n' '{print prefix $0}' \
|
|
|
+ | awk_rw0_strip_first_path_part \
|
|
|
+ | awk_rw0_add_prefix "$LOG_ROOT" \
|
|
|
&& : "TODO: allow configuring null terminated output"
|
|
|
)
|
|
|
else
|