emacs-guix.scm 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. ;;; emacs-guix.scm --- Scheme side of Emacs-Guix
  2. ;; Copyright © 2016–2019 Alex Kost <alezost@gmail.com>
  3. ;; This file is part of Emacs-Guix.
  4. ;; Emacs-Guix is free software; you can redistribute it and/or modify
  5. ;; it under the terms of the GNU General Public License as published by
  6. ;; the Free Software Foundation, either version 3 of the License, or
  7. ;; (at your option) any later version.
  8. ;;
  9. ;; Emacs-Guix is distributed in the hope that it will be useful,
  10. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. ;; GNU General Public License for more details.
  13. ;;
  14. ;; You should have received a copy of the GNU General Public License
  15. ;; along with Emacs-Guix. If not, see <http://www.gnu.org/licenses/>.
  16. ;;; Commentary:
  17. ;; This module is loaded by the elisp side of Emacs-Guix right after
  18. ;; starting the *Guix REPL*. It is used only to autoload all the
  19. ;; procedures from the other modules that can be called by the elisp
  20. ;; side.
  21. ;;; Code:
  22. (define-module (emacs-guix)
  23. #:use-module (guix ui)
  24. #:autoload (guix packages) (%supported-systems)
  25. #:autoload (emacs-guix commands) (guix-command
  26. guix-command-output
  27. help-string
  28. guix-output-to-file
  29. pipe-guix-output)
  30. #:autoload (emacs-guix licenses) (license-names
  31. lookup-license-uri
  32. license-sexps)
  33. #:autoload (emacs-guix packages) (profile->specifications+file-names
  34. package/output-sexps
  35. number-of-packages
  36. package-names*
  37. package-location-string
  38. package-location-files
  39. package-location-sexps)
  40. #:autoload (emacs-guix generations) (generation-sexps)
  41. #:autoload (emacs-guix system-generations) (system-generation-sexps)
  42. #:autoload (emacs-guix system) (system-sexps)
  43. #:autoload (emacs-guix services) (service-names*
  44. service-sexps
  45. service-location-string
  46. service-location-files
  47. service-location-sexps)
  48. #:autoload (emacs-guix store-items) (store-item-sexps)
  49. #:autoload (emacs-guix actions) (process-package-actions
  50. build-package*
  51. delete-generations*
  52. package-store-path
  53. package-source-file-name
  54. package-source-build-derivation
  55. package-build-log-file)
  56. #:autoload (emacs-guix graph) (graph-backend-names
  57. graph-node-type-names
  58. make-package-graph)
  59. #:autoload (emacs-guix hash) (file-hash)
  60. #:autoload (emacs-guix lint) (lint-checker-names
  61. lint-checker-sexps
  62. lint-package
  63. lint-packages)
  64. #:autoload (emacs-guix pack) (compressor-names
  65. pack-format-names)
  66. #:autoload (emacs-guix profiles) (search-paths
  67. search-paths-specifications
  68. user-profiles)
  69. #:autoload (emacs-guix refresh) (refresh-updater-names)
  70. #:autoload (emacs-guix emacs) (%max-returned-list-size
  71. %temporary-directory
  72. to-emacs-side)
  73. #:autoload (emacs-guix utils) (search-load-path))
  74. ;; Set `guix-warning-port' here, otherwise, some output from the
  75. ;; guix-daemon would not be displayed in the Guix REPL. For the same
  76. ;; `current-build-output-port' should also be set, but since it is used
  77. ;; only by build procedures from (emacs-guix actions) module, it is set
  78. ;; there.
  79. ;;
  80. ;; The same workaround is made for `guix-devel-mode' to set up a Guile
  81. ;; REPL (guix-devel-mode does not use Guix REPL). See
  82. ;; `guix-devel-setup-repl' elisp procedure.
  83. (guix-warning-port (current-warning-port))
  84. ;;; emacs-guix.scm ends here