summaryrefslogtreecommitdiff
path: root/guix/scripts/describe.scm
AgeCommit message (Expand)Author
2023-02-27ui: 'display-hint' quotes extra arguments for Texinfo....Fixes <https://issues.guix.gnu.org/61201>. Previously, common practice was to splice arbitrary strings (user names, file names, etc.) into Texinfo snippets passed to 'display-hint'. This is unsafe in the general case because at signs and braces need to be escaped to produced valid Texinfo. This commit addresses that. * guix/ui.scm (texinfo-quote): New procedure. (display-hint): When ARGUMENTS is non-empty, pass it to 'texinfo-quote' and call 'format'. (report-unbound-variable-error, check-module-matches-file) (display-collision-resolution-hint, run-guix-command): Remove explicit 'format' call; pass 'format' arguments as extra arguments to 'display-hint'. * gnu/services/monitoring.scm (zabbix-front-end-config): Likewise. * guix/scripts.scm (warn-about-disk-space): Likewise. * guix/scripts/build.scm (%standard-cross-build-options) (%standard-native-build-options): Likewise. * guix/scripts/describe.scm (display-checkout-info): Likewise. * guix/scripts/environment.scm (suggest-command-name): Likewise. * guix/scripts/home.scm (process-command): Likewise. * guix/scripts/home/edit.scm (service-type-not-found): Likewise. * guix/scripts/import.scm (guix-import): Likewise. * guix/scripts/package.scm (display-search-path-hint): Likewise. * guix/scripts/pull.scm (build-and-install): Likewise. * guix/scripts/shell.scm (auto-detect-manifest): Likewise. * guix/scripts/system.scm (check-file-system-availability): Likewise. (guix-system): Likewise. * guix/scripts/system/edit.scm (service-type-not-found): Likewise. * guix/status.scm (print-build-event): Likewise. Ludovic Courtès
2022-11-19scripts: describe: Add branch information to recutils output....* guix/scripts/describe.scm (channel->recutils): Add branch information. Signed-off-by: Ludovic Courtès <ludo@gnu.org> jgart
2022-11-19scripts: describe: Add branch information to json output....* guix/scripts/describe.scm (channel->json): Add branch information. Signed-off-by: Ludovic Courtès <ludo@gnu.org> jgart
2022-08-09channels: Add 'repository->guix-channel'....* guix/channels.scm (repository->guix-channel): New procedure. * guix/scripts/describe.scm (display-checkout-info): Use it instead of the (git) interface, and adjust accordingly. Ludovic Courtès
2022-04-09guix describe: Add missing import....Fixes a regression introduced in d4e858763c4303764729133c547b0a6dfe2354f9. * guix/scripts/describe.scm: Add missing autoload. Ludovic Courtès
2021-05-09describe: Gracefully handle profiles that lack provenance info....Fixes <https://bugs.gnu.org/48313>. Previously, 'current-channels' would return the empty list when 'current-profile' is true but the profile lacks provenance info. * guix/describe.scm (current-channels)[build-time-metadata]: New procedure. Call it when 'manifest-entry-channel' returns #f for all of ENTRIES. * guix/scripts/describe.scm (guix-describe): When PROFILE is true, pass third argument to 'display-profile-info'. Ludovic Courtès
2021-04-01scripts: describe: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/describe.scm (define-command): Replace 'args-fold*' by 'parse-command-line'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-03-19guix describe: Autoload Guile-JSON....* guix/scripts/describe.scm: Autoload (json). Ludovic Courtès
2021-02-05guix describe: 'display-profile-content' checks the right generation....Fixes a regression introduced in 316fc2acbb112bfa572ae30f95a93bcd56621234, whereby 'guix pull -l' would always display channel information corresponding to the latest profile generation. Reported by Vagrant Cascadian. * guix/scripts/describe.scm (profile-generation-channels): New procedure. (display-profile-content): Change default value of 'channels'. Ludovic Courtès
2021-02-04channels: Record 'guix' channel metadata in (guix config)....Partially fixes <https://bugs.gnu.org/45896>. * guix/config.scm.in (%channel-metadata): New variable. * guix/describe.scm (channel-metadata): Use it. (current-channels): New procedure. (current-profile-entries): Clarify docstring. * guix/self.scm (compiled-guix): Add #:channel-metadata and pass it to 'make-config.scm'. (make-config.scm): Add #:channel-metadata and define '%channel-metadata' in the generated file. (guix-derivation): Add #:channel-metadata and pass it to 'compiled-guix'. * guix/channels.scm (build-from-source): Replace 'name', 'source', and 'commit' parameters with 'instance'. Pass #:channel-metadata to BUILD. (build-channel-instance): Adjust accordingly. * build-aux/build-self.scm (build-program): Add #:channel-metadata and pass it to 'guix-derivation'. (build): Add #:channel-metadata and pass it to 'build-program'. * guix/scripts/describe.scm (display-profile-info): Add optional 'channels' parameter. Pass it to 'display-profile-content'. (display-profile-content): Add optional 'channels' parameter and honor it. Iterate on CHANNELS rather than on the manifest entries of PROFILE. (guix-describe): When PROFILE is #f, call 'current-channels' and pass it to 'display-profile-info', unless it returns the empty list. Ludovic Courtès
2021-02-01channels: Add 'channel->code'....* guix/channels.scm (channel->code): New procedure, taken from... * guix/scripts/describe.scm (channel->sexp): ... here. Adjust callers accordingly. Ludovic Courtès
2021-02-01guix describe: Use 'manifest-entry-channel'....* guix/channels.scm (manifest-entry-channel): Export. * guix/scripts/describe.scm (display-profile-content): Use it. Ludovic Courtès
2020-09-10scripts: 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-07-01guix describe: Display channel introductions and add 'channels-sans-intro'....* guix/scripts/describe.scm (%available-formats): Add "channels-sans-intro". (channel->sexp): Add #:include-introduction?. Emit CHANNEL's intro if INCLUDE-INTRODUCTION? is true and CHANNEL has an introduction. (channel->json): Include CHANNEL's introduction, if any. (channel->recutils): Likewise. (display-profile-info): Add 'channels-sans-intro' case. * doc/guix.texi (Invoking guix describe): Add introduction in example. Add 'channels-sans-intro' case. Ludovic Courtès
2020-06-26Add more (ice-9 format) imports....* guix/scripts/describe.scm: Add missing (ice-9 format). * guix/scripts/system.scm: Likewise. Ludovic Courtès
2020-05-18guix describe: Add '--list-formats'...* guix/scripts/describe.scm (%available-formats): New variable. (list-formats): New procedure. (%options, show-help): Add --list-formats * doc/guix.texi: Add --list-formats Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ekaitz Zarraga
2020-02-28Revert "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-24ui: 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-11describe: Remove dependency on (guix scripts pull)....Until now, 'guix describe' would perform ~3K stat calls and ~1K openat calls because it was pulling (guix scripts pull), which in turn pulls in many (gnu packages …) modules. * guix/scripts/pull.scm (display-profile-content, %vcs-web-views) (channel-commit-hyperlink): Move to... * guix/scripts/describe.scm: ... here. Remove import of (guix scripts pull). Ludovic Courtès
2019-08-16channels: Add 'profile-channels'....* guix/channels.scm (profile-channels): New procedure. * guix/scripts/describe.scm (display-profile-info)[channels]: Define in terms of 'profile-channels'. Ludovic Courtès
2019-04-28describe: Provide a hint when origin detection fails....* guix/scripts/describe.scm (display-checkout-info): Add call to 'display-hint' in the error case. Ludovic Courtès
2019-03-18describe: Warn about 'GUIX_PACKAGE_PATH' in json and recutils format....Fixes <https://bugs.gnu.org/34884>. Reported by Pierre Neidhardt <mail@ambrevar.xyz>. * guix/scripts/describe.scm (display-package-search-path): Add catch-all case for FMT. Ludovic Courtès
2018-12-07describe: In 'channels' format, quote the channel name....Fixes a regression introduced in commit 8548f995494d8d6358e6a8d7bc3b3bb5a0cbecb5. * guix/scripts/describe.scm (channel->sexp): Quote the channel name. Ludovic Courtès
2018-11-27describe: Delete 'directory' argument from 'display-checkout-info'....This commit follows 1255400faabfcf0ca1666d17f2f34ea0d49f6b1f. * guix/scripts/describe.scm (display-checkout-info): Delete 'directory' argument. Oleg Pykhalov
2018-11-22describe: Add recutils format....* guix/scripts/describe.scm (channel->recutils): New procedure. (display-checkout-info, display-profile-info): Use this. (%options): Add 'recutils' option. * doc/guix.texi (Invoking guix describe): Document this. Oleg Pykhalov
2018-11-22describe: Add json format....* guix/scripts/describe.scm (channel->json): New procedure. (display-checkout-info, display-profile-info): Use this. (%options): Add 'json' option. * doc/guix.texi (Invoking guix describe): Document this. Oleg Pykhalov
2018-11-22describe: Use a procedure to format output....* guix/scripts/describe.scm (channel->sexp): New procedure. (display-checkout-info, display-profile-info): Use this. Oleg Pykhalov
2018-11-21describe: Add profile option....* guix/scripts/describe.scm (%options): Add profile option. (show-help): Document this. (display-checkout-info): Check for profile argument. * doc/guix.texi (Invoking guix describe): Document this. Oleg Pykhalov
2018-11-21describe: Fix 'format' option....Fix ‘guix describe’ ignores ‘--format=FORMAT’ option. * guix/scripts/describe.scm (%options): Fix 'format' option. Oleg Pykhalov
2018-10-14describe: Canonicalize the profile....Fixes a regression introduced in 795d430d90e41eb172315bfccf79c9f13fc0ebfa whereby 'guix describe' would no longer display the generation number of ~/.config/guix/current. * guix/scripts/describe.scm (guix-describe): Call 'canonicalize-profile'. Ludovic Courtès
2018-09-18describe: Work correctly on generation-less profiles....Previously a command like: $(readlink -f ~/.config/guix/current)/bin/guix describe would succeed without printing anything. * guix/scripts/describe.scm (display-profile-info): Don't call 'generation-file-name' when NUMBER is zero. * guix/scripts/pull.scm (display-profile-content): Likewise. Ludovic Courtès
2018-09-07guix describe: Display information about the current generation....* guix/scripts/describe.scm (display-profile-info)[number]: Use the current generation number instead of the last generation number. Ludovic Courtès
2018-09-07Add 'guix describe'....* guix/scripts/describe.scm: New file. * Makefile.am (MODULES): Add it. (SH_TESTS): Add tests/guix-describe.sh. * po/guix/POTFILES.in: Add it. * guix/scripts/pull.scm (display-profile-content): Export. * guix/describe.scm (current-profile, current-profile-entries): Export. * tests/guix-describe.sh: New file. * doc/guix.texi (Features): Mention 'guix pull' and provenance tracking. (Invoking guix pull): Link to 'guix describe'. (Channels): Likewise. (Invoking guix describe): New node. Ludovic Courtès