[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Export an org file from the command line in the background
From: |
Nick Dokos |
Subject: |
Re: [O] Export an org file from the command line in the background |
Date: |
Wed, 19 Oct 2011 17:12:21 -0400 |
Viktor Rosenfeld <address@hidden> wrote:
> Hi,
>
> Jambunathan K wrote:
>
> >
> > C-h v org-export-run-in-background
>
> This only works for org-export, but not for org-export-as-XXX.
>
> Additionally, it appears that setting org-confirm-babel-evaluate locally
> does not have an effect on background exports. Even setting it globally
> in a running Emacs instance won't work; the command has to be in a file
> that is loaded during Emacs startup.
>
> The help contains the following text which I don't understand:
>
> This variable is safe as a file local variable if its value
> satisfies the predicate which is byte-compiled expression.
>
> Cheers,
> Viktor
>
> >
> > > Hi,
> > >
> > > is it possible to export an org file from the command line, so that a
> > > currently running Emacs instance is not disturbed? I want to export the
> > > attached org file and run the included source blocks, so I have an
> > > activity report in the end. I use the shell script pasted below, but
> > > there are two problems:
> > >
> > > - my Emacs instance is blocked during the execution of the shell
> > > scripts contained in the file
> > > - the script globally sets org-confirm-babel-evaluate to nil for my
> > > Emacs instance
> > >
> > > The second problem could possibly be solved with a local file variable.
> > > But the first problem remains. If I use emacs instead of emacsclient, it
> > > complains about a running Emacs instance.
> > >
> > > #!/bin/sh
> > >
> > > emacsclient -c \
> > > --eval "(progn
> > > (find-file \"macports.org\"))
> > > (setq org-confirm-babel-evaluate nil)
> > > (org-export-as-html 3)
> > > (kill-buffer)
> > > (delete-frame))"
> > >
> > > I'm using Org-Mode 7.7.
> > >
The usual method is to run a separate emacs in batch mode: that will avoid any
conflicts
with the running instance. But batch implies -q, so you will have to provide a
minimal .emacs
file that sets up enough structure to enable you to do what you want:
emacs --batch -l ~/minimal.emacs \
--eval '(let ((org-confirm-babel-evaluate nil))
(find-file "macports.org")
(org-export-as-html 3))'
should do it.
minimal.emacs would just load org - modulo path differences, something like:
--8<---------------cut here---------------start------------->8---
;;; -*- mode: emacs-lisp -*-
;;; constant part
(add-to-list 'load-path (expand-file-name "~/src/emacs/org/org-mode/lisp"))
(add-to-list 'load-path (expand-file-name
"~/src/emacs/org/org-mode/contrib/lisp"))
(add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode))
(require 'org-install)
--8<---------------cut here---------------end--------------->8---
Also note the let bind of org-confirm-babel-evaluate: that would alleviate the
second problem you mentioned above in the emacsclient case (and although it's
irrelevant in the emacs case, I still prefer the let bind over the explicit
setq).
HTH,
Nick
- [O] Export an org file from the command line in the background, Viktor Rosenfeld, 2011/10/19
- Re: [O] Export an org file from the command line in the background, Jambunathan K, 2011/10/19
- [O] Code block evaluation export bug ? (was: Re: Export an org file from the command line in the background), Nick Dokos, 2011/10/19
- Re: [O] Code block evaluation export bug ?, Thomas S. Dye, 2011/10/20
- Re: [O] Code block evaluation export bug ?, Nick Dokos, 2011/10/20
- Re: [O] Code block evaluation export bug ?, Nick Dokos, 2011/10/21
- Re: [O] Code block evaluation export bug ?, Nick Dokos, 2011/10/22