emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [0] Run org-babel src block periodically
@ 2016-01-03 19:33 Giri Prashanth
  2016-01-03 22:30 ` John Kitchin
  0 siblings, 1 reply; 3+ messages in thread
From: Giri Prashanth @ 2016-01-03 19:33 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 409 bytes --]

Hi,

I would like to run a org-src block code periodically, is there any
property for org-blocks for such repeated execution.

For example if I want to watch the tail of a file periodically every 1 min
for next 1 hour, I would like to set a property like repeat for times to
repeat and keep the org file auto updated

#+BEGIN_SRC shell :repeat 60 :repeat-every 60sec
tail -n 10 file
#+END_SRC

Thank you,
-GP

[-- Attachment #2: Type: text/html, Size: 645 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [0] Run org-babel src block periodically
  2016-01-03 19:33 [0] Run org-babel src block periodically Giri Prashanth
@ 2016-01-03 22:30 ` John Kitchin
  2016-01-08  7:44   ` Giri Prashanth
  0 siblings, 1 reply; 3+ messages in thread
From: John Kitchin @ 2016-01-03 22:30 UTC (permalink / raw)
  To: Giri Prashanth; +Cc: emacs-orgmode

This is kind of close to what you want I think (at least it updates
every 5 seconds for me, 5 times before it stops). You might adapt it to
do what you want.

This is the block to run periodically.
#+name: time-string
#+BEGIN_SRC sh
date
top -o "cpu" -ncols 4 -l 1| head -n 15
#+END_SRC

#+RESULTS: time-string
#+begin_example
Sun Jan  3 17:28:27 EST 2016
Processes: 225 total, 2 running, 3 stuck, 220 sleeping, 1110 threads
2016/01/03 17:28:27
Load Avg: 1.20, 1.51, 1.55
CPU usage: 5.0% user, 22.50% sys, 72.50% idle
SharedLibs: 14M resident, 12M data, 0B linkedit.
MemRegions: 57263 total, 3092M resident, 72M private, 450M shared.
PhysMem: 6508M used (1098M wired), 1246M unused.
VM: 588G vsize, 1067M framework vsize, 6471076(0) swapins, 6831574(0) swapouts.
Networks: packets: 190809878/201G in, 277243826/231G out.
Disks: 11873268/180G read, 10075469/265G written.

PID    COMMAND          %CPU TIME
96378  com.apple.InputM 0.0  00:00.26
96376  AppleSpell       0.0  00:00.68
96015  head             0.0  00:00.00
#+end_example

This function will update that block. We increment a counter and cancel the timer when it is exceeded.
#+BEGIN_SRC emacs-lisp
(defun update-src-block (fname src-name N)
  "Update the src-block named SRC-NAME in the file FNAME upto N times."
  (if (> *counter* N)
      (progn (cancel-timer *timer*)
             (message-box "Done with timer"))
    (save-excursion
      (with-current-buffer  (find-file-noselect fname)
        (org-babel-goto-named-src-block src-name)
        (org-babel-execute-src-block)
        (incf *counter*)))))
#+END_SRC

#+RESULTS:
: update-src-block

We use a global var for the counter and timer.
#+BEGIN_SRC emacs-lisp
(setq *counter* 0)
(setq *timer* (run-with-timer
               nil 5
               'update-src-block
               "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org"
               "time-string"
               5))
#+END_SRC

#+RESULTS:
: [nil 22153 41074 708648 5 update-src-block ("/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org" "time-string" 5) nil 0]


Giri Prashanth writes:

> Hi,
>
> I would like to run a org-src block code periodically, is there any
> property for org-blocks for such repeated execution.
>
> For example if I want to watch the tail of a file periodically every 1 min
> for next 1 hour, I would like to set a property like repeat for times to
> repeat and keep the org file auto updated
>
> #+BEGIN_SRC shell :repeat 60 :repeat-every 60sec
> tail -n 10 file
> #+END_SRC
>
> Thank you,
> -GP

--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [0] Run org-babel src block periodically
  2016-01-03 22:30 ` John Kitchin
@ 2016-01-08  7:44   ` Giri Prashanth
  0 siblings, 0 replies; 3+ messages in thread
From: Giri Prashanth @ 2016-01-08  7:44 UTC (permalink / raw)
  Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 3028 bytes --]

Thank you. This works great.

-GP

On Sun, Jan 3, 2016 at 2:30 PM, John Kitchin <jkitchin@andrew.cmu.edu>
wrote:

> This is kind of close to what you want I think (at least it updates
> every 5 seconds for me, 5 times before it stops). You might adapt it to
> do what you want.
>
> This is the block to run periodically.
> #+name: time-string
> #+BEGIN_SRC sh
> date
> top -o "cpu" -ncols 4 -l 1| head -n 15
> #+END_SRC
>
> #+RESULTS: time-string
> #+begin_example
> Sun Jan  3 17:28:27 EST 2016
> Processes: 225 total, 2 running, 3 stuck, 220 sleeping, 1110 threads
> 2016/01/03 17:28:27
> Load Avg: 1.20, 1.51, 1.55
> CPU usage: 5.0% user, 22.50% sys, 72.50% idle
> SharedLibs: 14M resident, 12M data, 0B linkedit.
> MemRegions: 57263 total, 3092M resident, 72M private, 450M shared.
> PhysMem: 6508M used (1098M wired), 1246M unused.
> VM: 588G vsize, 1067M framework vsize, 6471076(0) swapins, 6831574(0)
> swapouts.
> Networks: packets: 190809878/201G in, 277243826/231G out.
> Disks: 11873268/180G read, 10075469/265G written.
>
> PID    COMMAND          %CPU TIME
> 96378  com.apple.InputM 0.0  00:00.26
> 96376  AppleSpell       0.0  00:00.68
> 96015  head             0.0  00:00.00
> #+end_example
>
> This function will update that block. We increment a counter and cancel
> the timer when it is exceeded.
> #+BEGIN_SRC emacs-lisp
> (defun update-src-block (fname src-name N)
>   "Update the src-block named SRC-NAME in the file FNAME upto N times."
>   (if (> *counter* N)
>       (progn (cancel-timer *timer*)
>              (message-box "Done with timer"))
>     (save-excursion
>       (with-current-buffer  (find-file-noselect fname)
>         (org-babel-goto-named-src-block src-name)
>         (org-babel-execute-src-block)
>         (incf *counter*)))))
> #+END_SRC
>
> #+RESULTS:
> : update-src-block
>
> We use a global var for the counter and timer.
> #+BEGIN_SRC emacs-lisp
> (setq *counter* 0)
> (setq *timer* (run-with-timer
>                nil 5
>                'update-src-block
>                "/Users/jkitchin/
> blogofile-jkitchin.github.com/_blog/blog.org"
>                "time-string"
>                5))
> #+END_SRC
>
> #+RESULTS:
> : [nil 22153 41074 708648 5 update-src-block ("/Users/jkitchin/
> blogofile-jkitchin.github.com/_blog/blog.org" "time-string" 5) nil 0]
>
>
> Giri Prashanth writes:
>
> > Hi,
> >
> > I would like to run a org-src block code periodically, is there any
> > property for org-blocks for such repeated execution.
> >
> > For example if I want to watch the tail of a file periodically every 1
> min
> > for next 1 hour, I would like to set a property like repeat for times to
> > repeat and keep the org file auto updated
> >
> > #+BEGIN_SRC shell :repeat 60 :repeat-every 60sec
> > tail -n 10 file
> > #+END_SRC
> >
> > Thank you,
> > -GP
>
> --
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu
>



-- 
-giri

[-- Attachment #2: Type: text/html, Size: 4213 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-01-08  7:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-03 19:33 [0] Run org-babel src block periodically Giri Prashanth
2016-01-03 22:30 ` John Kitchin
2016-01-08  7:44   ` Giri Prashanth

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).