>>>>> On Sun, 28 Apr 2024, Florian Schmaus wrote:

> --- a/eclass/texlive-common.eclass
> +++ b/eclass/texlive-common.eclass
> @@ -270,10 +270,18 @@ texlive-common_update_tlpdb() {
>       touch "${new_tlpdb}" || die
> 
>       if [[ -d "${tlpobj}" ]]; then
> -             find "${tlpobj}" -maxdepth 1 -type f -name "*.tlpobj" -print0 |
> -                     sort -z |
> -                     xargs -0 --no-run-if-empty cat >> "${new_tlpdb}"
> -             assert "generating tlpdb failed"
> +             all_tlpobjs() {
> +                     find "${tlpobj}" -maxdepth 1 -type f -name "*.tlpobj" 
> -print0 |
> +                             sort -z
> +                     assert "Error enumerating all tlpobj files"
> +             }
> +             (
> +                     while IFS="" read -d $'\0' -r f; do
> +                             cat "${f}" || die "Failed to read ${f}"
> +                             # Ensure there is an empty line between every 
> tlpobj entry.
> +                             echo
> +                     done < <(all_tlpobjs)
> +             ) >> "${new_tlpdb}"
>       fi
> 
>       if [[ -f ${tlpdb} ]]; then

Looks complicated. AFAICS a one-line change like the following would
also do the job:

-                       xargs -0 --no-run-if-empty cat >> "${new_tlpdb}"
+                       xargs -0 --no-run-if-empty sed -s '$G' >> "${new_tlpdb}"

Alternatively, "sed -s '$s/$/\n/'" would also work (but is longer and
maybe harder to read).

Ulrich

Attachment: signature.asc
Description: PGP signature

Reply via email to