Leo Famulari <[email protected]> writes:

> * gnu/packages/tls.scm (acme)[arguments]: Add 'docs' phase.
> [native-inputs]: Add python-sphinx, python-sphinxcontrib-programoutput,
> python-sphinx-rtd-theme, python-setuptools, texinfo.
> ---
>  gnu/packages/tls.scm | 19 ++++++++++++++++---
>  1 file changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
> index 00d4805..dc6f9b4 100644
> --- a/gnu/packages/tls.scm
> +++ b/gnu/packages/tls.scm
> @@ -340,11 +340,24 @@ security, and applying best practice development 
> processes.")
>                 (display "\n[easy_install]\nzip_ok = 0\n"
>                          port)
>                 (close-port port)
> -               #t))))))
> -    ;; TODO: Add optional inputs for testing and building documentation.
> +               #t)))
> +         (add-after 'install 'docs
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (man (string-append out "/share/man/man1"))
> +                    (info (string-append out "/info")))
> +               (and (zero? (system* "make" "-C" "docs" "man" "info"))
> +                    (install-file "docs/_build/texinfo/acme-python.info" 
> info)
> +                    (install-file "docs/_build/man/acme-python.1" man))))))))

“install-file” calls “copy-file” last and according to the Guile manual
the return value of “copy-file” is unspecified.  In practise this is not
#f, of course, so all the three arguments to “(and ...)” will be
evaluated as long as “make” does not fail.

However, “and” just returns the return value of its last argument
(unless one of the arguments evaluates to “#f”), which is unspecified,
not “#t”.  As we want successful phases to return “#t” you could
explicitly add “#t” as a fourth argument to “(and ...)”.

Not sure if that’s really necessary, but you did ask for comments about
your use of “and”... :)

~~ Ricardo

Reply via email to