~ruther/guix-local

5e53b0c5a9e1c693d46bdaf24e6b5ce498410da6 — Alex Kost 10 years ago caa6732
emacs: Add code to run guix command in REPL.

* emacs/guix-base.el (guix-run-command-in-repl, guix-command-output,
  guix-help-string): New functions.
* emacs/guix-main.scm (guix-command, guix-command-output, help-string):
  New procedures.
2 files changed, 39 insertions(+), 0 deletions(-)

M emacs/guix-base.el
M emacs/guix-main.scm
M emacs/guix-base.el => emacs/guix-base.el +21 -0
@@ 1085,6 1085,27 @@ FILE.  With a prefix argument, also prompt for PROFILE."
     operation-buffer)))


;;; Executing guix commands

(defun guix-run-command-in-repl (args)
  "Execute 'guix ARGS ...' command in Guix REPL."
  (guix-eval-in-repl
   (apply #'guix-make-guile-expression
          'guix-command args)))

(defun guix-command-output (args)
  "Return string with 'guix ARGS ...' output."
  (guix-eval-read
   (apply #'guix-make-guile-expression
          'guix-command-output args)))

(defun guix-help-string (&optional commands)
  "Return string with 'guix COMMANDS ... --help' output."
  (guix-eval-read
   (apply #'guix-make-guile-expression
          'help-string commands)))


;;; Pull

(defcustom guix-update-after-pull t

M emacs/guix-main.scm => emacs/guix-main.scm +18 -0
@@ 931,6 931,24 @@ GENERATIONS is a list of generation numbers."
                (package-source-derivation->store-path derivation))))))


;;; Executing guix commands

(define (guix-command . args)
  "Run 'guix ARGS ...' command."
  (catch 'quit
    (lambda () (apply run-guix args))
    (const #t)))

(define (guix-command-output . args)
  "Return string with 'guix ARGS ...' output."
  (with-output-to-string
    (lambda () (apply guix-command args))))

(define (help-string . commands)
  "Return string with 'guix COMMANDS ... --help' output."
  (apply guix-command-output `(,@commands "--help")))


;;; Lists of packages, lint checkers, etc.

(define (graph-type-names)