>>>>> On Thu, 09 Dec 2021, Maciej Barć wrote:

>  dune-install() {
> +     local pkgs
> +     if [[ -n "${@}" ]] ; then
> +             pkgs="${@}"

Here pkgs is a scalar ...

> +     else
> +             pkgs=${DUNE_PKG_NAME}
> +     fi
> +
> +     local myduneopts=(
> +             --prefix="${ED%/}/usr"
> +             --libdir="${D%/}$(ocamlc -where)"
> +             --mandir="${ED%/}/usr/share/man"
> +     )
>       local pkg
> -     for pkg ; do
> -             dune install \
> -                     --prefix="${ED%/}/usr" \
> -                     --libdir="${D%/}$(ocamlc -where)" \
> -                     --mandir="${ED%/}/usr/share/man" \
> -                     "${pkg}" || die
> +     for pkg in ${pkgs[@]} ; do

... and here it's an array?

> +             dune install ${myduneopts[@]} ${pkg} || die
> +
> +             # Move docs to the appropriate place.
> +             if [ -d "${ED%/}/usr/doc/${pkg}" ] ; then
> +                     mkdir -p "${ED%/}/usr/share/doc/${PF}/" || die
> +                     mv "${ED%/}/usr/doc/${pkg}" 
> "${ED%/}/usr/share/doc/${PF}/" || die
> +                     rm -rf "${ED%/}/usr/doc" || die
> +             fi
>       done
>  }

I'd write something like this:

        local -a pkgs=("$@")
        [[ ${#pkgs[@]} -eq 0 ]] && pkgs=(${DUNE_PKG_NAME})

And the loop like this (note the double quotes to be whitespace-safe):

        for pkg in "${pkgs[@]}"; do
                ...
        done

Ulrich

Attachment: signature.asc
Description: PGP signature

Reply via email to