~ruther/guix-local

8b9ceb8d03ab7b67cab9ce96b66f197c331ccc04 — Alex Kost 10 years ago cdd383e
emacs: Add code to pipe guix output to external program.

* emacs/guix-main.scm: Use (ice-9 popen) module.
  (pipe-guix-output): New procedure.
1 files changed, 10 insertions(+), 0 deletions(-)

M emacs/guix-main.scm
M emacs/guix-main.scm => emacs/guix-main.scm +10 -0
@@ 45,6 45,7 @@
(use-modules
 (ice-9 vlist)
 (ice-9 match)
 (ice-9 popen)
 (srfi srfi-1)
 (srfi srfi-2)
 (srfi srfi-11)


@@ 949,6 950,15 @@ GENERATIONS is a list of generation numbers."
  "Return string with 'guix COMMANDS ... --help' output."
  (apply guix-command-output `(,@commands "--help")))

(define (pipe-guix-output guix-args command-args)
  "Run 'guix GUIX-ARGS ...' command and pipe its output to a shell command
defined by COMMAND-ARGS.
Return #t if the shell command was executed successfully."
  (let ((pipe (apply open-pipe* OPEN_WRITE command-args)))
    (with-output-to-port pipe
      (lambda () (apply guix-command guix-args)))
    (zero? (status:exit-val (close-pipe pipe)))))

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