Age | Commit message (Expand) | Author |
2022-08-16 | ui: Describe package outputs....* guix/ui.scm (package->recutils): Output outputs with their descriptions,
one per line.
* po/packages/Makevars (XGETTEXT_OPTIONS): Add ‘output-synopsis’ as keyword.
| Liliana Marie Prikler |
2022-06-16 | ui: Improve pager selection logic when less is not installed....* guix/ui.scm (find-available-pager): New procedure.
(call-with-paginated-output-port): Use it.
* guix/utils.scm (call-with-environment-variables): Allow clearing of
specified environment variables.
* tests/ui.scm (make-empty-file, assert-equals-find-available-pager):
New procedures.
("find-available-pager, GUIX_PAGER takes precedence")
("find-available-pager, PAGER takes precedence")
("find-available-pager, 'less' takes precedence")
("find-available-pager, 'more' takes precedence")
("find-available-pager, no pager"): New tests.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Taiju HIGASHI |
2022-04-19 | ui: Highlight package and service search results....* guix/ui.scm (package->recutils): Add #:highlighting parameter and use it.
(display-search-results): Add #:regexps parameter; call
'colorize-full-matches' and pass #:highlighting.
* guix/scripts/package.scm (process-query): Pass #:regexps to
'display-search-results'.
* guix/scripts/home.scm (search): Likewise.
* guix/scripts/system/search.scm (service-type->recutils): Add #:highlighting
parameter and use it.
| Ludovic Courtès |
2022-04-19 | ui: Highlight important bits in recutils output....* guix/scripts/system/search.scm (service-type->recutils): Highlight the
value of the 'name' field.
* guix/ui.scm (package->recutils): Likewise for 'name' and 'version'.
| Ludovic Courtès |
2022-04-08 | ui: Move 'location->hyperlink' to (guix diagnostics)....* guix/ui.scm (location->hyperlink): Move to...
* guix/diagnostics.scm: ... here.
* guix/scripts/system/search.scm: Adjust imports accordingly.
| Ludovic Courtès |
2022-04-08 | ui: Move hyperlink facilities to (guix colors)....* guix/ui.scm (supports-hyperlinks?, file-hyperlink, hyperlink): Move to...
* guix/colors.scm: ... here.
* guix/scripts/home.scm, guix/scripts/system.scm,
guix/scripts/system/search.scm: Adjust imports accordingly.
| Ludovic Courtès |
2022-03-18 | ui: 'show-what-to-build' highlights "would be downloaded" headings....* guix/ui.scm (show-what-to-build): Highlight "X MB would be downloaded".
| Ludovic Courtès |
2022-03-18 | ui: 'show-what-to-build' highlights "The following [...] will be built"....* guix/colors.scm (highlight/warn): New procedure.
* guix/ui.scm (show-what-to-build): Use 'highlight/warn' when displaying
what would/will be built.
| Ludovic Courtès |
2022-02-14 | ui: 'display-generation' uses color when talking to a pager....This makes sure that, say, 'guix pull -l' benefits from colors when its
output is piped to a pager, as long as the underlying terminal supports
it.
* guix/ui.scm (display-generation): Add second argument to 'highlight'.
| Ludovic Courtès |
2022-02-14 | ui: 'with-paginated-output-port' gives access to the wrapped port....* guix/ui.scm (pager-port-mapping): New variable.
(pager-wrapped-port): New procedure.
(call-with-paginated-output-port): Parameterize 'pager-port-mapping'.
| Ludovic Courtès |
2022-01-22 | guix: ui: Fix typo in docstring....* guix/ui.scm (colorize-store-file-name)[docstring]: Fix typo.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
| jgart |
2022-01-11 | ui: 'package->recutils' can split the "system:" line....Previously, long system lines would not be split, which would confuse
'less', possibly leading it to hide the first line of the package
recutils record (the "name:" line).
* guix/ui.scm (package->recutils)[split-lines]: New procedure.
[dependencies->recutils]: Use it.
Use it for the "systems:" value.
| Ludovic Courtès |
2022-01-01 | ui: It's 2022!...Happy new year!
* guix/ui.scm (show-version-and-exit): Change the year to 2022.
| Leo Famulari |
2021-11-07 | ui: 'load*' correctly reports 'read-error' in all cases....Previously, 'read-error' exceptions other than "missing closing paren"
would not be reported; instead, we'd directly call (exit 1) without
printing anything.
Fixes <https://issues.guix.gnu.org/51463>.
Reported by Alice BRENON <alice.brenon@ens-lyon.fr>.
* guix/ui.scm (report-load-error): Report the error without re-throwing
upon 'read-error'.
* tests/guix-build.sh: Add test.
| Ludovic Courtès |
2021-10-31 | ui: Use DISPLAY in SHOW-GUIX-HELP....* guix/ui.scm (show-guix-help): Use DISPLAY where FORMAT isn't needed.
| Tobias Geerinckx-Rice |
2021-10-31 | ui: Add top-level options to help text....This also makes automated ‘guix --h<Tab>’ completion possible.
* guix/ui.scm (show-guix-help): Document that an OPTION's an option,
and all valid options.
| Tobias Geerinckx-Rice |
2021-10-28 | ui: Gracefully handle invalid Texinfo markup in package blurbs....Previously 'guix search' & co. would crash when encountering invalid
Texinfo.
* guix/ui.scm (texi->plain-text*): New procedure.
(package-field-string, package->recutils): Use it.
| Ludovic Courtès |
2021-07-15 | ui: Improve output appearance when listing generations....* guix/ui.scm (display-profile-content-diff): Use pretty-print-table to format
output.
(display-profile-content): Likewise.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
| Steve Sprang |
2021-06-29 | ui: Have 'guix help' stat less....This reduces the number of syscalls for:
env -i $(type -P strace) -c $(type -P guix) help
from 4.3K to 2.2K, thereby reducing startup time.
Reported by Julien Lepiller.
* guix/ui.scm (run-guix-command): Move %FILE-PORT-NAME-CANONICALIZATION
to...
(run-guix): ... here.
| Ludovic Courtès |
2021-06-01 | ui, lint: Simplify exception handling in Guile 3 style....* guix/lint.scm (check-derivation)[try]: Remove "catch #t" wrapping.
* guix/ui.scm (call-with-error-handling): Remove "catch 'system-error"
and move 'system-error handling to the &exception-with-kind-and-args
clause.
| Ludovic Courtès |
2021-06-01 | maint: Require Guile 3.0....* configure.ac: Require Guile 3.0.
* doc/guix.texi (Requirements): Adjust accordingly.
* gnu/packages/package-management.scm (guile2.2-guix): Remove.
* guix/lint.scm (exception-with-kind-and-args?): Remove 'cond-expand'.
* guix/scripts/deploy.scm (deploy-machine*): Likewise.
* guix/store.scm (call-with-store): Likewise.
* guix/swh.scm (http-get*, http-post*): Likewise.
* guix/ui.scm (without-compiler-optimizations, guard*)
(call-with-error-handling): Likewise.
| Ludovic Courtès |
2021-05-17 | ui: 'load*' compiles with '-O1'....With this change, the wall-clock time of:
guix system build --no-grafts -d gnu/system/install.scm
goes from 5.0s to 2.3s on Guile 3.0.5.
* guix/ui.scm (without-compiler-optimizations): New macro.
(load*): Use it.
| Ludovic Courtès |
2021-05-17 | ui: Remove Guile 2.2.3 workaround....This became dead code with commit
4f621a2b003e85d480999e4d0630e9dc3de85bc3.
* guix/ui.scm (load*): Remove Guile 2.2.3 workaround.
| Ludovic Courtès |
2021-05-05 | ui: Suggest installing glibc-locales, not glibc-utf8-locales....Users (both old and new) struggling with locale warnings is a recurrent theme;
part of it may be due to the glibc-utf8-locales package being misleading, as
it only includes a subset of the UTF-8 locales. To prevent confusion, suggest
installing the glibc-locales package instead.
* guix/ui.scm (install-locale): Do not mention glibc-utf8-locales in the hint
message. Use glibc-locales instead of glibc-utf8-locales in the provided
example.
| Maxim Cournoyer |
2021-04-29 | diagnostics, ui: Adjust to 'read-error' and 'syntax-error' in Guile 3.0.6....* guix/diagnostics.scm (source-properties->location): Add clause for
vectors.
* guix/ui.scm (report-load-error): Tweak 'read-error' handling for 3.0.6.
* tests/guix-package.sh: Relax regexp for the "unbound variable"
diagnostic check.
* tests/guix-system.sh: Adjust "missing closing paren" check for 3.0.6.
* tests/records.scm (location-alist): New procedure.
("define-record-type* & wrong field specifier")
("define-record-type* & wrong field specifier, identifier")
("define-record-type* & duplicate initializers"): Use it.
| Ludovic Courtès |
2021-02-24 | ui: Bug-report URL in '--help' can be translated....* guix/ui.scm (show-bug-report-information): Add "/en" to the help URL
and pass it to 'G_'.
| Ludovic Courtès |
2021-02-19 | ui: Fix typo in description....* guix/ui.scm (switch-to-generation*): Fix typo in description.
| Brice Waegeneire |
2021-02-03 | ui: Add hint for command typo....* guix/ui.scm (command-hint): New variable
(run-guix-command): Use it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-01-28 | ui: Look up extensions before built-in commands....* guix/ui.scm (run-guix-command): Modify order so that extensions are allowed
to override default commands.
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
| zimoun |
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 |