Merge branch 'master' into dbus-update
guix system: Add 'dmd-graph' command.
* guix/scripts/system.scm (dmd-service-node-label,
dmd-service-node-type, export-dmd-graph): New procedures.
(show-help): Add 'dmd-graph'.
(guix-system)[parse-sub-command]: Likewise.
Honor it.
* doc/guix.texi (Invoking guix system): Document it.
(dmd Services): Add an illustration and explanation.
* doc/images/dmd-graph.dot: New file.
* doc.am (DOT_FILES): Add it.
guix system: Add 'extension-graph' command.
* guix/scripts/system.scm (service-node-label, service-node-type,
export-extension-graph): New procedures.
(guix-system)[parse-sub-command]: Add 'extension-graph'.
Honor it.
(show-help): Add 'extension-graph'.
* doc/guix.texi (Invoking guix system): Document it.
(Service Composition): Add cross-reference.
graph: 'export-graph' takes a #:reverse-edges? parameter.
* guix/scripts/graph.scm (export-graph): Add #:reverse-edges? parameter
and honor it.
guix system: Add '--derivation'.
* guix/scripts/system.scm (perform-action): Add #:derivations-only?
parameter and honor it.
(show-help, %options): Add '--derivation'.
(guix-system): Pass #:derivations-only? to 'perform-action'.
* tests/guix-system.sh: Test it.
* doc/guix.texi (Invoking guix system): Document it.
scripts: environment: Use system* instead of system.
This allows for direct program invokation without needing a shell to act
as a command interpreter.
* guix/scripts/environment.scm (%default-shell): New variable.
(show-help): Adjust description. Remove '--exec' reference.
(%default-options): Use '%default-shell'.
(%options): Adjust '--exec' to run command via the default shell.
(parse-args): New procedure.
(guix-environment): Use 'parse-args'. Use 'system*' instead of
'system'.
* tests/guix-environment.sh: Add test for '--' command invokation.
* doc/guix.texi ("Invoking guix environment"): Use new syntax. Remove
'--exec' documentation.
lint: Export 'run-checkers'.
* guix/scripts/lint.scm (run-checkers): Export. Make 'checkers'
argument optional.
Merge branch 'master' into core-updates
publish: Fix file descriptor leak.
A client closing the connection while reading from a /nar URL would
leave an open file descriptor in the server. This patch fixes it.
* guix/scripts/publish.scm (swallow-EPIPE): New macro.
(http-write): Use it around 'write-file' call.
guix gc: Add '--list-failures' and '--clear-failures'.
Suggested by Mark H Weaver <mhw@netris.org>.
* guix/scripts/gc.scm (show-help, %options): Add --list-failures and
--clear-failures.
(guix-gc): Honor them.
* doc/guix.texi (Invoking guix gc): Document them.
(Invoking guix-daemon): Mention them.
lint: Fix 'check-texinfo-markup'.
Fixes a regression introduced in 5d8d8f3.
* guix/scripts/lint.scm (check-description-style): When no exception is
thrown in 'check-texinfo-markup', return the rendered description.
lint: Improve 'check-texinfo-markup'.
* guix/scripts/lint.scm (check-description-style): Set 'field' parameter
when emitting a warning in 'check-texinfo-markup'. Catch any error
that may occur in during the 'texi->plain-text' conversion. This is a
followup to commit 2748ee3.
offload: Use gzip instead of xz for compression on the master.
* guix/scripts/offload.scm (send-files): Use gzip --fast instead of xz.
lint: Accept '`' character.
* guix/scripts/lint.scm (properly-starts-sentence?): Match Texinfo
highlighting commands as a sentence start.
lint: Check non-translated package descriptions.
* guix/ui.scm (texi->plain-text): Export.
* guix/scripts/lint.scm (check-description-style): Use it instead of
'package-description-string'.
Merge branch 'master' into core-updates
scripts: Add 'build-package'.
* guix/scripts/system.scm (maybe-build): Move to ...
* guix/scripts.scm: ...here.
(build-package): New procedure.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
lint: Report lonely parentheses.
* guix/scripts/lint.scm (%hanging-paren-rx): New variable.
(report-lone-parentheses): New procedure.
(%formatting-reporters): Use it.
* tests/lint.scm ("formatting: lonely parentheses"): New test.
ui: Add 'show-derivation-outputs'.
* guix/scripts/build.scm (guix-build): Extract code from here and move to...
* guix/ui.scm (show-derivation-outputs): ... here. New procedure.
Add (guix scripts).
* guix/ui.scm: Add missing copyright lines.
(args-fold*, environment-build-options, %default-argument-handler,
parse-command-line): Move to ...
* guix/scripts.scm: ...here. New file.
* guix/scripts/archive.scm: Use it.
* guix/scripts/build.scm: Likewise.
* guix/scripts/download.scm: Likewise.
* guix/scripts/edit.scm: Likewise.
* guix/scripts/environment.scm: Likewise.
* guix/scripts/gc.scm: Likewise.
* guix/scripts/graph.scm: Likewise.
* guix/scripts/hash.scm: Likewise.
* guix/scripts/import/cpan.scm: Likewise.
* guix/scripts/import/cran.scm: Likewise.
* guix/scripts/import/elpa.scm: Likewise.
* guix/scripts/import/gem.scm: Likewise.
* guix/scripts/import/gnu.scm: Likewise.
* guix/scripts/import/hackage.scm: Likewise.
* guix/scripts/import/nix.scm: Likewise.
* guix/scripts/import/pypi.scm: Likewise.
* guix/scripts/lint.scm: Likewise.
* guix/scripts/package.scm: Likewise.
* guix/scripts/publish.scm: Likewise.
* guix/scripts/pull.scm: Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/scripts/size.scm: Likewise.
* guix/scripts/system.scm: Likewise.
* tests/ui.scm (with-environment-variable, "parse-command-line",
"parse-command-line and --no options"): Move to ...
* tests/scripts.scm: ...here. New file.
* Makefile.am (MODULES): Add guix/scripts.scm.
(SCM_TESTS): Add tests/scripts.scm.
* po/guix/POTFILES.in: Add guix/scripts.scm.