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
