guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/04: emacs: Add code to pipe guix output to external program.


From: Alex Kost
Subject: 01/04: emacs: Add code to pipe guix output to external program.
Date: Tue, 01 Sep 2015 10:05:01 +0000

alezost pushed a commit to branch master
in repository guix.

commit 8b9ceb8d03ab7b67cab9ce96b66f197c331ccc04
Author: Alex Kost <address@hidden>
Date:   Sun Aug 30 18:44:39 2015 +0300

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

diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index fe224fb..8d3a881 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -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.
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]