>>>>> 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