[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SOLVED] Re: [QUESTION] How to use :filter in `make-process'?
From: |
stardiviner |
Subject: |
[SOLVED] Re: [QUESTION] How to use :filter in `make-process'? |
Date: |
Wed, 04 Mar 2020 00:18:26 +0800 |
User-agent: |
mu4e 1.3.8; emacs 27.0.50 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Thanks Joost.
After reading the Info manual (even though the Info manual is not very
friendly.)
I have following source code example which works great.
#+begin_src emacs-lisp
(shell-command "touch /tmp/tail.log")
(let ((proc (make-process
:name "*tail log*"
:command (list "tail" "-f" "/tmp/tail.log")
:filter (lambda (proc output)
(message "append log captured")
(let ((p (get-process "*tail log*")))
(when (buffer-live-p (process-buffer p))
(with-current-buffer (process-buffer p)
(let ((moving (= (point) (process-mark proc))))
(save-excursion
;; Insert the text, advancing the process
marker.
(goto-char (process-mark proc))
(insert output)
(set-marker (process-mark proc) (point)))
(if moving (goto-char (process-mark proc))))))))
:sentinel (lambda (proc event)
(message "done!"))
:buffer "*tail log*")))
(display-buffer "*tail log*"))
#+end_src
#+RESULTS[<2020-03-04 00:15:51> 9c0b6b462a594bd21b9d5579bd9a9254a3279e62]:
: #<window 183 on *info elisp*>
Then execute following command to append content into the log file:
#+begin_src sh
for N in {0..10}; do
echo $N >> /tmp/tail.log
done
#+end_src
- --
[ stardiviner ]
I try to make every word tell the meaning what I want to express.
Blog: https://stardiviner.github.io/
IRC(freenode): stardiviner, Matrix: stardiviner
GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
-----BEGIN PGP SIGNATURE-----
iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl5eg1IUHG51bWJjaGls
ZEBnbWFpbC5jb20ACgkQG13xyVromsOaCgf+P+aEoz8powv4LhelGuypm71n2AVK
Kmx4wNu967+Uz5pCSpKAhFhRp1ZLIOVypQ1lkpoJD/40kK/vr2GCdKAfX4XSUbqb
aIasFL6xOZE+4V9fw7BJQAqz9T5deFv46scjXsAvaUAMquP8qAd1X6EMEx2PrQ9t
u0NCqTNY4Emob1bkMtDUyfjCYZ1wno+c6mxrpyUTk0AiRLLKA/mqv7p5HdhYZQq5
vsr8Yeg/SwLPoZSQpvXorvhO3chlB1/JL7R65P+cvv+56uaEsWh/PzHRK2FCLzWA
6wI9nGsW05mKzddoNPdU2ZiNuPcwvXPFrHliRyNCR8tHtBvieKEBLqVyzA==
=Pwf1
-----END PGP SIGNATURE-----