summaryrefslogtreecommitdiff
path: root/emacs/guix-ui-package.el
Commit message (Collapse)AuthorAgeFilesLines
* emacs: Add "Build Log" button to Package Info.Alex Kost2016-05-311-1/+24
| | | | | | | | | * emacs/guix-main.scm (package-build-log-file): New procedure. * emacs/guix-ui-package.el (guix-package-build-log-file) (guix-package-find-build-log) (guix-package-info-insert-build-log-button): New procedures. (guix-package-info-button-functions): Add 'guix-package-info-insert-build-log-button'.
* emacs: Add "Build" button to Package Info.Alex Kost2016-05-311-1/+27
| | | | | | | | | | * emacs/guix-main.scm: Use (guix scripts) module for 'build-package' procedure. * emacs/guix-base.el (guix-build-package): New procedure. * emacs/guix-ui-package.el (guix-package-info-insert-build-button): New procedure. (guix-package-info-button-functions): New variable. (guix-package-info-insert-misc): Insert buttons using it.
* emacs: Show built output directories in Package Info.Alex Kost2016-05-311-2/+54
| | | | | | | | | | | * emacs/guix-main.scm (package-store-path): New procedure. * emacs/guix-base.el (guix-package-store-path): New procedure. * emacs/guix-ui-package.el (guix-package-info-auto-find-package): New variable. (guix-package-info-show-store-path, guix-package-info-insert-misc): New procedures. (guix-package-info-format, guix-output-info-format): Add 'guix-package-info-insert-misc'.
* emacs: Add 'guix-package-from-file' command.Alex Kost2016-05-101-9/+24
| | | | | | | | | * emacs/guix-main.scm (register-package, packages-from-file): New procedures. (%patterns-makers): Add 'from-file' search type. * emacs/guix-messages.el (guix-messages): Add messages for it. * emacs/guix-ui-package.el (guix-package-from-file): New command. (guix-package-info-insert-location): Adjust for 'from-file' type. * doc/emacs.texi (Emacs Commands): Document it.
* emacs: Display license info on button press in Package Info buffer.Alex Kost2016-04-181-2/+6
| | | | | * emacs/guix-ui-package.el (guix-package-license): Adjust button action to display license info instead of browsing license URL.
* emacs: Add location "Packages" button to Package Info buffer.Alex Kost2016-04-181-2/+18
| | | | | | | * emacs/guix-ui-package.el (guix-package-info-insert-location): New procedure. (guix-package-info-format): Use it. (guix-output-info-format): Likewise.
* emacs: Separate package location code.Alex Kost2016-04-181-0/+1
| | | | | | | | | * emacs/guix-base.el (guix-directory, guix-read-directory) (guix-set-directory): Move to "guix-backend.el". (guix-find-location, guix-package-location, guix-edit): Move to... * emacs/guix-location.el: ... here. New file. * emacs/guix-ui-package.el: Use it. * emacs.am (ELFILES): Add it.
* emacs: Add 'guix-packages-by-location' command.Alex Kost2016-04-181-1/+11
| | | | | | | | | | | | | | * emacs/guix-main.scm (packages-by-location-file, package-location-files): New procedures. (%patterns-makers): Add 'location' search type. * emacs/guix-messages.el (guix-message-packages-by-location): New procedure. (guix-messages): Use it. * emacs/guix-read.el (guix-package-locations) (guix-read-package-location): New procedures. * emacs/guix-ui-package.el (guix-packages-by-location): New command. * doc/emacs.texi (Emacs Commands): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* emacs: Use space to separate package name and version in heading.Alex Kost2016-03-231-4/+7
| | | | | | | | Reported by Ludovic Courtès <ludo@gnu.org>. * emacs/guix-ui-package.el (guix-package-name): Check 'spec' property. (guix-package-info-insert-heading): Use "name version" for button label, write name specification to 'spec' property.
* emacs: Use '@' to separate package names and version numbers.Alex Kost2016-03-041-1/+1
| | | | | | | | | | | | This is a followup to commit 1b846da8c372bee78851439fd9e72b2499115e5a. * emacs/guix-base.el (guix-package-name-specification): Use "@" instead of "-". * emacs/guix-main.scm (name+version->full-name): Likewise. (package-inputs-names): Use 'make-package-specification' instead of 'package-full-name'. (full-name->name+version): Update the docstring. * emacs/guix-ui-package.el (guix-packages-by-name): Likewise.
* emacs: hydra: Use '-' to separate job names and version numbers.Alex Kost2016-03-041-2/+3
| | | | | | * emacs/guix-hydra.el (guix-hydra-job-name-specification): New procedure. * emacs/guix-ui-package.el (guix-package-info-insert-systems) (guix-package-list-latest-builds): Use it.
* emacs: Do not allow a user to modify system profiles.Alex Kost2016-02-221-5/+22
| | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/22607>. Reported by myglc2 <myglc2@gmail.com>. Remove possibilities to install/delete packages to/from a system profile both for "Package List" and "Package Info" buffers. * emacs/guix-profiles.el (guix-system-profile-regexp): New variable. (guix-system-profile?): New procedure. * emacs/guix-ui-package.el (guix-package-info-insert-output): Do not display "Install"/"Delete" button for a system profile. (guix-package-assert-non-system-profile): New procedure. (guix-package-execute-actions): Use it.
* emacs: Add 'M-x guix-installed-{user/system}-packages'.Alex Kost2016-02-221-0/+13
| | | | | | * emacs/guix-ui-package.el (guix-installed-user-packages) (guix-installed-system-packages): New commands. * doc/emacs.texi (Emacs Commands): Document them.
* emacs: 'C-u M-x guix-edit' prompts for directory.Alex Kost2016-02-101-8/+11
| | | | | | | | * emacs/guix-base.el (guix-read-directory): New procedure. (guix-find-location, guix-edit): Add optional 'directory' argument. * emacs/guix-ui-package.el (guix-package-list-edit) (guix-output-list-edit): Likewise. * doc/emacs.texi (Emacs Commands): Mention "C-u".
* emacs: Add missing (require 'guix-profiles).Alex Kost2016-02-041-0/+1
| | | | | | | | | | | | | | | | | Reported by Christopher Allan Webber <cwebber@dustycloud.org> on #guix. Several modules use the code from 'guix-profiles' without requiring it. It was never noticed before commits e4e2154644ecf76ea02a50304c1405c00c9ffdd1 and 13fe4891fa247d306e203ee14c6886513bd86b52, because 'guix-emacs' required this module. But now, when 'site-start.el' loads 'guix-emacs', 'guix-profiles' may not exist yet, so it may not be required. This will lead to an error when some of "M-x guix-..." commands will be used. See <https://gnunet.org/bot/log/guix/2016-02-03#T898859>. * emacs/guix-base.el: Require 'guix-profiles'. * emacs/guix-ui.el: Likewise. * emacs/guix-ui-generation.el: Likewise. * emacs/guix-ui-package.el: Likewise.
* emacs: Add 'guix-packages-by-license' command.Alex Kost2016-01-251-0/+12
| | | | | | | | | * emacs/guix-main.scm (packages-by-license): New procedure. (%patterns-makers): Add 'license' search type. * emacs/guix-messages.el (guix-message-packages-by-license): New procedure. (guix-messages): Use it. * emacs/guix-ui-package.el (guix-packages-by-license): New command. * doc/emacs.texi (Emacs Commands): Document it.
* emacs: Buttonize licenses in "Package Info".Alex Kost2016-01-251-2/+10
| | | | | | * emacs/guix-ui-package.el (guix-package-license): New button type. (guix-package-info-format, guix-output-info-format): Use it. * doc/emacs.texi (Emacs Info buffer): Mention it.
* emacs: Add 'guix-search-by-name'.Alex Kost2016-01-181-0/+11
| | | | | * emacs/guix-ui-package.el (guix-search-by-name): New command. * doc/emacs.texi (Emacs Commands): Document it.
* emacs: Rename 'guix-search-by-name' to 'guix-packages-by-name'.Alex Kost2016-01-181-3/+3
| | | | | | * emacs/guix-ui-package.el (guix-search-by-name): Rename to... (guix-packages-by-name): ... this. Complete package name. * doc/emacs.texi (Emacs Commands): Likewise.
* emacs: Fix heading face in "Package Info".Alex Kost2016-01-141-2/+5
| | | | | | | | | | | Reported by Ludovic Courtès <ludo@gnu.org> on #guix. This fixes a regression introduced in commit 7171d824. 'insert-text-button' procedure does not allow to override a button face, so a specialized button type should be used instead. * emacs/guix-ui-package.el (guix-package-heading): New button type. (guix-package-info-insert-heading): Use it.
* emacs: Display supported systems in "Package Info".Alex Kost2016-01-071-1/+18
| | | | | | | | | * emacs/guix-main.scm (%package-param-alist): Add 'systems'. * emacs/guix-ui-package.el (guix-package-info-insert-systems): New procedure. (guix-package-info-format): Add it. (guix-output-info-format): Likewise. (guix-package-info-titles): Add "Supported systems" title.
* emacs: Use "B" key in "Package List" to display latest builds.Alex Kost2016-01-021-0/+15
| | | | | | | | * emacs/guix-ui-package.el (guix-package-list-latest-builds): New procedure. (guix-package-list-mode-map): Bind "B" key to it. (guix-output-list-mode-map): Likewise. * doc/emacs.texi (Emacs List buffer): Document it.
* emacs: Add 'guix-ui-read-profile'.Alex Kost2016-01-021-17/+6
| | | | | | | | | | * emacs/guix-ui.el (guix-ui-read-profile): New procedure. * emacs/guix-ui-package.el (guix-search-by-name) (guix-search-by-regexp, guix-installed-packages) (guix-obsolete-packages, guix-all-available-packages) (guix-newest-available-packages): Use it. * emacs/guix-ui-generation.el (guix-generations) (guix-last-generations, guix-generations-by-time): Use it.
* emacs: Add hierarchy of customization groups.Alex Kost2016-01-021-3/+2
| | | | | | | | | | | | | | * emacs/guix-buffer.el (guix-define-groups, guix-define-entry-type) (guix-define-buffer-type): New macros. (guix-buffer-define-interface): Add parent groups for the generated custom groups. * emacs/guix-info.el: Use 'guix-define-buffer-type' to generate custom groups. * emacs/guix-list.el: Likewise. * emacs/guix-ui.el: Use 'guix-define-groups' to generate custom groups. (guix-ui-define-entry-type): New macro. * emacs/guix-ui-package.el: Use it. * emacs/guix-ui-generation.el: Use it.
* emacs: Add 'list-single' variables.Alex Kost2016-01-021-6/+0
| | | | | | | * emacs/guix-list.el (guix-list-single-entry?): New procedure. (guix-list-define-interface): Add ':list-single?' key and generate 'guix-ENTRY-TYPE-list-single' variables. * emacs/guix-ui-package.el (guix-package-list-single): Remove.
* emacs: Reorganize package/generation UI code.Alex Kost2016-01-021-0/+958
Move the code for packages/generations interface from "guix-info.el", "guix-list.el", "guix-base.el" and "guix.el" to "guix-ui-package.el" and "guix-ui-generation.el". * emacs/guix-base.el (guix-package-entry->name-specification) (guix-package-entries->name-specifications) (guix-package-id-and-output-by-output-id) (guix-package-installed-outputs, guix-process-package-actions) (guix-package-list-type, guix-package-info-type) (guix-continue-package-operation-p, guix-get-package-strings) (guix-insert-package-strings): Move to "guix-ui-package.el". (guix-generation-packages-buffer-name-function, guix-output-name-width) (guix-generation-packages-update-buffer, guix-generation-packages) (guix-generation-packages-buffer-name-default) (guix-generation-packages-buffer-name-long) (guix-generation-packages-buffer-name, guix-generation-packages-buffer) (guix-generation-insert-packages, guix-generation-insert-package) (guix-profile-generation-manifest-file, guix-delete-generations) (guix-profile-generation-packages-buffer, guix-switch-to-generation): Move to "guix-ui-generation.el". * emacs/guix-info.el (guix-package-location, guix-package-name) (guix-package-source, guix-package-info-source) (guix-package-info-heading, guix-package-info-license) (guix-package-info-name, guix-package-info-name-button) (guix-package-info-version, guix-package-info-location) (guix-package-info-synopsis, guix-package-info-description) (guix-package-info-obsolete, guix-package-info-installed-outputs) (guix-package-info-uninstalled-outputs) (guix-package-info-insert-heading) (guix-package-info-define-insert-inputs) (guix-package-info-obsolete-string) (guix-package-info-insert-obsolete-text) (guix-package-info-insert-non-unique-text) (guix-package-info-insert-outputs, guix-package-info-insert-output) (guix-package-info-insert-action-button) (guix-package-info-auto-find-source) (guix-package-info-auto-download-source) (guix-package-info-download-buffer, guix-package-info-show-source) (guix-package-info-download-source, guix-package-info-insert-source) (guix-package-info-redisplay-after-download) (guix-output-info-insert-version, guix-output-info-insert-output): Move to "guix-ui-package.el". (guix-generation-info-number, guix-generation-info-current) (guix-generation-not-current, guix-generation-info-insert-number) (guix-generation-info-insert-current): Move to "guix-ui-generation.el". * emacs/guix-list.el (guix-package-list-generation-marking-enabled) (guix-package-list-installed, guix-package-list-obsolete) (guix-package-list-get-name, guix-package-list-get-installed-outputs) (guix-package-list-marking-check, guix-package-list-mark-outputs) (guix-package-list-mark-install, guix-package-list-mark-delete) (guix-package-list-mark-upgrade, guix-package-list-mark-upgrades) (guix-list-mark-package-upgrades, guix-list-execute-package-actions) (guix-package-list-execute, guix-package-list-make-action) (guix-package-list-edit, guix-output-list-mark-install) (guix-output-list-mark-delete, guix-output-list-mark-upgrade) (guix-output-list-mark-upgrades, guix-output-list-make-action) (guix-output-list-describe, guix-output-list-edit): Move to "guix-ui-package.el". (guix-generation-list-get-current, guix-generation-list-switch) (guix-generation-list-generations-to-compare) (guix-generation-list-compare, guix-generation-list-show-packages) (guix-generation-list-show-added-packages) (guix-generation-list-show-removed-packages) (guix-generation-list-diff, guix-generation-list-diff-manifests) (guix-generation-list-ediff, guix-generation-list-ediff-manifests) (guix-generation-list-diff-packages) (guix-generation-list-ediff-packages) (guix-generation-list-mark-delete, guix-generation-list-execute): Move to "guix-ui-generation.el". * emacs/guix.el: Remove. (guix, guix-faces, guix-edit): Move to "guix-base.el". (guix-list-single-package, guix-search-params, guix-search-history) (guix-get-show-packages, guix-search-by-name, guix-search-by-regexp) (guix-installed-packages, guix-obsolete-packages) (guix-all-available-packages, guix-newest-available-packages): Move to "guix-ui-package.el". (guix-get-show-generations, guix-generations, guix-last-generations) (guix-generations-by-time): Move to "guix-ui-generation.el". * emacs.am (ELFILES): Remove "guix.el". Add "guix-ui-package.el" and "guix-ui-generation.el". * doc/emacs.texi (Emacs Appearance): Adjust accordingly.