Age | Commit message (Expand) | Author |
2021-01-07 | ui: Fix order of match clauses....Fixes <https://bugs.gnu.org/45709>.
This is a follow-up to commit cf289d7cfa34315bf13b3114b9a5bf3d3c05ebea.
* guix/ui.scm (run-guix-command): Match for #false first.
Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
| Simon Tournier |
2021-01-05 | Discover extensions via GUIX_EXTENSIONS_PATH....* guix/scripts.scm (%command-categories): Add extension category.
* guix/ui.scm (source-file-command): Also parse extensions files.
(command-files): Accept an optional directory argument.
(extension-directories): New procedure.
(commands): Use it.
(show-guix-help): Hide empty categories.
(run-guix-command): Try loading an extension if there is no matching Guix
command.
| Ricardo Wurmus |
2021-01-04 | ui: It's 2021 now!...* guix/ui.scm (show-version-and-exit): Change year to 2021.
| Ludovic Courtès |
2020-12-05 | ui: Handle multiword and empty $PAGER values....* guix/ui.scm (call-with-paginated-output-port): Empty PAGER values
disable paging. Non-empty ones are split into command arguments.
Reported by Daniel Brooks <db48x@db48x.net>.
| Tobias Geerinckx-Rice |
2020-11-26 | deploy: Let key-and-args exceptions through....Fixes <https://bugs.gnu.org/44825>.
Reported by Christopher Lemmer Webber <cwebber@dustycloud.org>.
* guix/ui.scm (guard*): Export.
* guix/scripts/deploy.scm (deploy-machine*): Use 'guard*' instead of
'guard'. Add '&exception-with-kind-and-args' case.
| Ludovic Courtès |
2020-11-10 | ui: Use the right accessor when reporting '&gexp-input-error'....* guix/ui.scm (call-with-error-handling): In the 'gexp-input-error?'
case, use 'gexp-error-invalid-input' as the accessor.
| Ludovic Courtès |
2020-11-06 | ui: Add missing format argument in 'warn-about-load-error'....* guix/ui.scm (warn-about-load-error): Add missing argument to 'warning'.
| Ludovic Courtès |
2020-10-15 | ui: Only suggest modules that export the unbound variable identifier....Fixes <https://bugs.gnu.org/43498>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.
* guix/ui.scm (known-variable-definition): Check for variables in the
public interface of HEAD, not in HEAD itself.
* tests/guix-build.sh: Add test.
| Ludovic Courtès |
2020-10-02 | ui: Use "guix install" in locale hint....* guix/ui.scm (install-locale): Change "guix package -i" to "guix install".
| Ludovic Courtès |
2020-10-01 | ui: "guix help" silently ignores EPIPE....This avoids a backtrace when running "guix help | head" or similar.
* guix/ui.scm (run-guix): Wrap 'show-guix-help' calls in
'leave-on-EPIPE'.
| Ludovic Courtès |
2020-09-14 | ui: 'show-what-to-build' displays download estimate more prominently....* guix/ui.scm (show-what-to-build): When VERBOSITY is 1, add a newline
before the "would/will be downloaded" line, and wrap that message in
'highlight'.
| Ludovic Courtès |
2020-09-12 | ui: Lexicographically sort transaction entries based on their package name....* guix/ui.scm (show-manifest-transaction): Sort entries to be displayed in a
tabulated view.
| Maxim Cournoyer |
2020-09-12 | ui: Refactor the package-strings helper in show-manifest-transaction....* guix/ui.scm (show-manifest-transaction)[package-strings]: Add an
OLD-VERSIONS keyword parameter. Absorb the code path previously found in the
upgrade-string. Remove upgrade-string.
(show-manifest-transaction): Adjust to the above changes.
| Maxim Cournoyer |
2020-09-10 | scripts: Use 'define-command' and have 'guix help' use that....This changes 'guix help' to print a short synopsis for each command and
to group commands by category.
* guix/scripts.scm (synopsis, category): New variables.
(define-command-categories, define-command): New macros.
(%command-categories): New variable.
* guix/ui.scm (<command>): New record type.
(source-file-command): New procedure.
(command-files): Return absolute file names.
(commands): Return a list of <command> records.
(show-guix-help)[display-commands, category-predicate]: New procedures.
Display commands grouped in three categories.
* guix/scripts/archive.scm (guix-archive): Use 'define-command'.
* guix/scripts/authenticate.scm (guix-authenticate): Likewise.
* guix/scripts/build.scm (guix-build): Likewise.
* guix/scripts/challenge.scm (guix-challenge): Likewise.
* guix/scripts/container.scm (guix-container): Likewise.
* guix/scripts/copy.scm (guix-copy): Likewise.
* guix/scripts/deploy.scm (guix-deploy): Likewise.
* guix/scripts/describe.scm (guix-describe): Likewise.
* guix/scripts/download.scm (guix-download): Likewise.
* guix/scripts/edit.scm (guix-edit): Likewise.
* guix/scripts/environment.scm (guix-environment): Likewise.
* guix/scripts/gc.scm (guix-gc): Likewise.
* guix/scripts/git.scm (guix-git): Likewise.
* guix/scripts/graph.scm (guix-graph): Likewise.
* guix/scripts/hash.scm (guix-hash): Likewise.
* guix/scripts/import.scm (guix-import): Likewise.
* guix/scripts/install.scm (guix-install): Likewise.
* guix/scripts/lint.scm (guix-lint): Likewise.
* guix/scripts/offload.scm (guix-offload): Likewise.
* guix/scripts/pack.scm (guix-pack): Likewise.
* guix/scripts/package.scm (guix-package): Likewise.
* guix/scripts/perform-download.scm (guix-perform-download): Likewise.
* guix/scripts/processes.scm (guix-processes): Likewise.
* guix/scripts/publish.scm (guix-publish): Likewise.
* guix/scripts/pull.scm (guix-pull): Likewise.
* guix/scripts/refresh.scm (guix-refresh): Likewise.
* guix/scripts/remove.scm (guix-remove): Likewise.
* guix/scripts/repl.scm (guix-repl): Likewise.
* guix/scripts/search.scm (guix-search): Likewise.
* guix/scripts/show.scm (guix-show): Likewise.
* guix/scripts/size.scm (guix-size): Likewise.
* guix/scripts/substitute.scm (guix-substitute): Likewise.
* guix/scripts/system.scm (guix-system): Likewise.
* guix/scripts/time-machine.scm (guix-time-machine): Likewise.
* guix/scripts/upgrade.scm (guix-upgrade): Likewise.
* guix/scripts/weather.scm (guix-weather): Likewise.
| Ludovic Courtès |
2020-09-10 | ui: '--help' output links to <https://guix.gnu.org/help/>....* guix/ui.scm (show-bug-report-information): Link to
<https://guix.gnu.org/help/> instead of <https://www.gnu.org/gethelp/>.
The former is much more useful and includes links to GNU manuals.
| Ludovic Courtès |
2020-09-02 | ui: Attempt to fall back to "en_US.utf8" rather than "C"....* guix/ui.scm (install-locale): Add call to 'setlocale' in 'catch' handler.
| Ludovic Courtès |
2020-08-05 | ui: Report key-and-arg exceptions correctly....Fixes <https://bugs.gnu.org/42601>.
Reported by Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>.
Regression introduced in efe037fc5cc3134bbc3ef4e36b49a3f788921b68
whereby errors like 'wrong-type-arg' would be improperly reported:
guix environment: error: Wrong type argument in position ~A (expecting ~A): ~S
See also commit a07d5e558b5403dad0a59776b950b6b02169c249.
* guix/ui.scm (call-with-error-handling): Move 'message-condition?'
clause after '&exception-with-kind-and-args' clause.
| Ludovic Courtès |
2020-08-03 | ui: Add #:verbosity to 'show-what-to-build'....* guix/ui.scm (%default-verbosity): New variable.
(show-what-to-build): Add #:verbosity and honor it.
(build-notifier): Add #:verbosity and pass it to 'show-what-to-build'.
| Ludovic Courtès |
2020-07-27 | processes: Allow 'less' to properly estimate line length....Until now, the first few lines in the output of 'guix processes' could
disappear in 'less'.
* guix/ui.scm (call-with-paginated-output-port): Add #:less-options
parameter and honor it.
(with-paginated-output-port): Allow callers to pass #:less-options.
* guix/scripts/processes.scm (guix-processes): Pass #:less-options to
'with-paginated-output-port'.
| Ludovic Courtès |
2020-07-25 | Use 'formatted-message' instead of '&message' where appropriate....* gnu.scm (%try-use-modules): Use 'formatted-message' instead of
'&message'.
* gnu/machine/digital-ocean.scm (maybe-raise-unsupported-configuration-error):
Likewise.
* gnu/machine/ssh.scm (machine-check-file-system-availability): Likewise.
(machine-check-building-for-appropriate-system): Likewise.
(deploy-managed-host): Likewise.
(maybe-raise-unsupported-configuration-error): Likewise.
* gnu/packages.scm (search-patch): Likewise.
* gnu/services.scm (%service-with-default-value): Likewise.
(files->etc-directory): Likewise.
(fold-services): Likewise.
* gnu/system.scm (locale-name->definition*): Likewise.
* gnu/system/mapped-devices.scm (check-device-initrd-modules): Likewise.
(check-luks-device): Likewise.
* guix/channels.scm (latest-channel-instance): Likewise.
* guix/cve.scm (json->cve-items): Likewise.
* guix/git-authenticate.scm (commit-signing-key): Likewise.
(commit-authorized-keys): Likewise.
(authenticate-commit): Likewise.
(verify-introductory-commit): Likewise.
* guix/remote.scm (remote-pipe-for-gexp): Likewise.
* guix/scripts/graph.scm (assert-package): Likewise.
* guix/scripts/offload.scm (private-key-from-file*): Likewise.
* guix/ssh.scm (authenticate-server*): Likewise.
(open-ssh-session): Likewise.
(remote-inferior): Likewise.
* guix/ui.scm (matching-generations): Likewise.
* guix/upstream.scm (package-update): Likewise.
* tests/channels.scm ("latest-channel-instances, missing introduction for 'guix'"):
Catch 'formatted-message?'.
("authenticate-channel, wrong first commit signer"): Likewise.
* tests/lint.scm ("patches: not found"): Adjust message string.
* tests/packages.scm ("patch not found yields a run-time error"): Catch
'formatted-message?'.
* guix/lint.scm (check-patch-file-names): Handle 'formatted-message?'.
(check-derivation): Ditto.
| Ludovic Courtès |
2020-07-25 | diagnostics: Add '&formatted-message'....This allows 'gettext' to be called on the format string at the site
where the exception is caught (rather than the site where it's thrown).
It also allows for argument highlighting.
* guix/diagnostics.scm (&formatted-message): New condition type.
(check-format-string): New procedure.
(formatted-message): New macro.
* guix/ui.scm (report-load-error): Add clause for 'formatted-message?'.
(warn-about-load-error): Likewise.
(call-with-error-handling): Likewise.
(read/eval): Likewise.
| Ludovic Courtès |
2020-07-25 | ui: Factorize '&message' handling....* guix/ui.scm (call-with-error-handling): Factorize the three
'message-condition?' clauses into one.
| Ludovic Courtès |
2020-07-15 | ui: 'with-error-handling' does not unwind the stack....Since a07d5e558b5403dad0a59776b950b6b02169c249, we've been getting
useless backtraces upon unhandled errors, like this:
Backtrace:
1 (primitive-load "/home/…/bin/guix")
In guix/ui.scm:
1953:12 0 (run-guix-command _ . _)
guix/ui.scm:1953:12: In procedure run-guix-command:
In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f
This change finally gives us real backtraces back.
* guix/ui.scm (guard*): New macro.
(call-with-error-handling): Use it instead of 'guard'.
| Ludovic Courtès |
2020-07-02 | Revert "ui: Use package-description-string."...This reverts commit bd03e99f66be1a038e3a8aeb502f5153fd05cc67.
Reported by Ekaitz Zarraga <ekaitz@elenq.tech> at
<https://lists.gnu.org/archive/html/guix-devel/2020-06/msg00338.html>.
That commit broke would prevent "description: " from being taken into
account by the 'texi->plain-text' paragraph filling code.
| Ludovic Courtès |
2020-06-28 | processes: Write to $PAGER....* guix/ui.scm (with-paginated-output-port): Export.
* guix/scripts/processes.scm (guix-processes): Use it instead of writing
directly to (current-output-port).
| Ludovic Courtès |
2020-06-15 | ui: Use package-description-string....* guix/ui.scm (package->recutils): Use package-description-string instead of
package-description and P_.
| Arun Isaac |
2020-06-15 | ui: Do not translate package synopsis a second time....* guix/ui.scm (package->recutils): package-synopsis-string already returns a
translated string. Do not attempt to translate it again.
| Arun Isaac |
2020-06-15 | ui: Cut off search early if any regexp does not match....* guix/ui.scm (relevance): When one of the regexps does not match, cut off
early and return 0. Do not try to match the remaining regexps.
| Arun Isaac |
2020-06-14 | ui: Set 'LESS' environment variable unconditionally....Fixes <https://bugs.gnu.org/41811>.
Reported by Lars-Dominik Braun <lars@6xq.net>.
* guix/ui.scm (call-with-paginated-output-port): Remove (getenv "LESS")
call.
| Ludovic Courtès |
2020-06-06 | ui: 'display-search-results' automatically invokes the pager....* guix/ui.scm (call-with-paginated-output-port): New procedure.
(with-paginated-output-port): New macro.
(display-search-results): Use it instead of displaying a hint.
| Ludovic Courtès |
2020-04-17 | ui: Fix typos, 80-col & grammar in comments & docstrings....* guix/ui.scm (load*): Fix comment line length.
(leave-on-EPIPE): Fix typo in docstring.
(substitutable-info): Fix typo in comment.
(indented-string): Fix typo in docstring.
(%package-metrics): Fix typo in comment.
(run-guix): Fix grammar in docstring.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Vincent Legoll |
2020-04-02 | ui: Clarify "dependencies changed"....Suggested by Leo Famulari <leo@famulari.name>.
* guix/ui.scm (show-manifest-transaction): Change to "dependencies or
package changed".
| Ludovic Courtès |
2020-03-24 | ui: 'show-manifest-transaction' tabulates package lists for install/remove....It also removes the store file name from the output.
* guix/ui.scm (show-manifest-transaction)[package-strings]: Rewrite to
use 'tabulate'. Remove 'item' parameter and adjust callers.
| Ludovic Courtès |
2020-03-24 | ui: 'show-manifest-transaction' tabulates upgraded package lists....This also changes "1.0.0 → 1.0.0" to "(dependencies changed)", which is
probably less confusing.
* guix/ui.scm (tabulate): New procedure.
(show-manifest-transaction)[upgrade-string]: Rewrite to take lists of
names, versions, and outputs instead of single elements. Use
'tabulate'. Adjust callers accordingly.
| Ludovic Courtès |
2020-03-23 | ui: Add 'indented-string'....* guix/scripts/pull.scm (display-news-entry): Remove extra space in
format string for 'indented-string'.
(indented-string): Remove.
(display-new/upgraded-packages)[pretty]: Pass #:initial-indent? to
'indented-string'.
* guix/ui.scm (indented-string): New procedure.
| Ludovic Courtès |
2020-03-22 | ui: 'build-notifier' invokes continuation when there's nothing to do....* guix/ui.scm (build-notifier): Call CONTINUE when there's nothing to
build or download, even when DRY-RUN? is true.
| Ludovic Courtès |
2020-03-22 | ui: 'show-what-to-build' returns two values, for builds and downloads....* guix/ui.scm (show-what-to-build): Return two values.
| Ludovic Courtès |
2020-03-22 | ui: 'show-what-to-build' returns true when there are grafts to build....* guix/ui.scm (show-what-to-build): Distinguish between 'build/full' and
'build'. Return true whe 'build/full' is non-empty, thus taking grafts
into account.
| Ludovic Courtès |
2020-03-22 | ui: Add a notification build handler....* guix/ui.scm (build-notifier): New variable.
| Ludovic Courtès |
2020-03-11 | ui: Restore line wrapping for 'package->recutils'....Fixes a regression introduced when switching to Guile 3.0.0 whereby
monkey-patching 'wrap*' wouldn't have any effects due to inlining.
* guix/ui.scm (%text-width): Define in terms of the '*line-width*' fluid
when it's defined.
<top level>: Set (@@ (texinfo plain-text) wrap*) only when
'*line-width*' is undefined.
| Ludovic Courtès |
2020-02-28 | Revert "ui: Only display link in capable terminals."...This reverts commit d7545a6b538813e88195d084f75a3e87065c999e.
The commit led to a test failure in 'tests/guix-package-net.sh'. It
also led to disagreements discussed here:
https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00353.html
Reverting until these are addressed.
| Ludovic Courtès |
2020-02-24 | ui: Don't truncate search output when inside Emacs....* guix/ui.scm (display-search-results): Loop over all results when
INSIDE_EMACS is set.
| Pierre Neidhardt |
2020-02-24 | ui: Only display link in capable terminals....* guix/ui.scm (display-generation): Display generation path on new line.
* guix/scripts/describe.scm (channel-commit-hyperlink): Add TRANSFORMER argument.
(display-profile-content): Use TRANSFORMER argument to display URL explicitly
when terminal does not support hyperlinks.
| zimoun |
2020-02-23 | ui: (size->number "1.M") is correctly parsed....Reported by Pierre Neidhardt <mail@ambrevar.xyz>.
* guix/ui.scm (size->number)[unit-pos]: Add #\. to CHAR-SET:DIGIT.
* tests/ui.scm ("size->number, 1.M"): New test.
| Ludovic Courtès |
2020-02-11 | ui: Fix typo in comment....Reported by Vincent Legoll <vincent.legoll@gmail.com>.
* guix/ui.scm (call-with-error-handling): Remove "come" in comment.
| Ludovic Courtès |
2020-01-24 | ui: Do not display error messages with bare format strings....On Guile 3, with, say, an error in ~/.guile, we'd get:
$ guix repl
guix repl: error: Unbound variable: ~S
* guix/ui.scm (call-with-error-handling): Add
'&exception-with-kind-and-args' case.
| Ludovic Courtès |
2020-01-17 | ui: Ignore 'raise-exception' frames when reporting exceptions....* guix/ui.scm (last-frame-with-source): Check whether FRAME corresponds
to 'raise-exception' and skip it if it does.
| Ludovic Courtès |
2020-01-16 | records: Improve reporting of "invalid field specifier" errors....Previously users would just see:
error: invalid field specifier
without source location or hints.
* guix/records.scm (expand): Add optional 'parent-form' parameter and
pass it to 'syntax-violation' when it is true.
(make-syntactic-constructor): Pass S as a third argument to
'report-invalid-field-specifier'.
* guix/ui.scm (report-load-error): For 'syntax-error', show SUBFORM or
FORM in the message.
* tests/records.scm ("define-record-type* & wrong field specifier"): Add
a 'subform' parameter and adjust test accordingly.
("define-record-type* & wrong field specifier, identifier"): New test.
* tests/guix-system.sh: Add test.
| Ludovic Courtès |
2020-01-15 | Avoid warnings for the 'delete' binding of (guix build utils)....On Guile 3, importing (guix build utils) leads to warnings such as:
WARNING: (gnu packages embedded): imported module (guix build utils) overrides core binding `delete'
* gnu/packages/embedded.scm: Select 'alist-replace' from (guix build utils).
* guix/ui.scm: Hide 'delete' from (guix build utils).
| Ludovic Courtès |
2020-01-02 | ui: It's 2020 now!...* guix/ui.scm (show-version-and-exit): Change year to 2020.
| Ludovic Courtès |