[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How to run shell command with stream input, to get string output
From: |
Jean Louis |
Subject: |
How to run shell command with stream input, to get string output |
Date: |
Mon, 1 Jul 2019 00:32:05 +0200 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
Hello,
I would like to know how to make in Emacs Lisp the
equivalent function to what I have here below in
Common Lisp.
I wish to feed a string as stream to a command and
to get the string output.
For example, I would like to do something like
this:
(setq output
(shell-command-feed-string "markdown" "Hello\n=====\n\n"))
output would then be something like "<h1>Hello</h1>"
so to receive the string back as result from
markdown parsing.
This type of function then I would use on various
commands, not just markdown, but that maybe one
good example.
I have tried searching for similar in Emacs Lisp
manual, could not find it.
With CLISP Common Lisp implementation:
(defun slurp-stream-io-command2 (command string)
"Returns the output of a command to which string
has been fed, very usable for markdown, emacs Org
mode processing and similar"
(let* ((stream (make-pipe-io-stream command :external-format "utf-8"))
(in (two-way-stream-input-stream stream))
(out (two-way-stream-output-stream stream))
(result ""))
(princ string out)
(finish-output out)
(close out)
(setf result (with-output-to-string (var)
(loop for c = (read-char in nil)
while c
do (format var "~A" c))))
(finish-output in)
(close in)
(close stream)
result))
Thank you,
Jean
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- How to run shell command with stream input, to get string output,
Jean Louis <=