Gentoo Archives: gentoo-dev

From: Ulrich Mueller <ulm@g.o>
To: "Maciej Barć" <xgqt@g.o>
Cc: gentoo-dev@l.g.o, ml@g.o
Subject: Re: [gentoo-dev] [PATCH v3] eclass/dune.eclass: fix dune-install function
Date: Fri, 10 Dec 2021 06:54:36
Message-Id: ufsr1j6g3@gentoo.org
In Reply to: [gentoo-dev] [PATCH v3] eclass/dune.eclass: fix dune-install function by "Maciej Barć"
1 >>>>> On Thu, 09 Dec 2021, Maciej Barć wrote:
2
3 > dune-install() {
4 > + local pkgs
5 > + if [[ -n "${@}" ]] ; then
6 > + pkgs="${@}"
7
8 Here pkgs is a scalar ...
9
10 > + else
11 > + pkgs=${DUNE_PKG_NAME}
12 > + fi
13 > +
14 > + local myduneopts=(
15 > + --prefix="${ED%/}/usr"
16 > + --libdir="${D%/}$(ocamlc -where)"
17 > + --mandir="${ED%/}/usr/share/man"
18 > + )
19 > local pkg
20 > - for pkg ; do
21 > - dune install \
22 > - --prefix="${ED%/}/usr" \
23 > - --libdir="${D%/}$(ocamlc -where)" \
24 > - --mandir="${ED%/}/usr/share/man" \
25 > - "${pkg}" || die
26 > + for pkg in ${pkgs[@]} ; do
27
28 ... and here it's an array?
29
30 > + dune install ${myduneopts[@]} ${pkg} || die
31 > +
32 > + # Move docs to the appropriate place.
33 > + if [ -d "${ED%/}/usr/doc/${pkg}" ] ; then
34 > + mkdir -p "${ED%/}/usr/share/doc/${PF}/" || die
35 > + mv "${ED%/}/usr/doc/${pkg}" "${ED%/}/usr/share/doc/${PF}/" || die
36 > + rm -rf "${ED%/}/usr/doc" || die
37 > + fi
38 > done
39 > }
40
41 I'd write something like this:
42
43 local -a pkgs=("$@")
44 [[ ${#pkgs[@]} -eq 0 ]] && pkgs=(${DUNE_PKG_NAME})
45
46 And the loop like this (note the double quotes to be whitespace-safe):
47
48 for pkg in "${pkgs[@]}"; do
49 ...
50 done
51
52 Ulrich

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies