* Batch execution and --script
@ 2012-08-29 15:47 Marcelo de Moraes Serpa
2012-08-29 16:42 ` Nick Daly
0 siblings, 1 reply; 10+ messages in thread
From: Marcelo de Moraes Serpa @ 2012-08-29 15:47 UTC (permalink / raw)
To: Org Mode
[-- Attachment #1: Type: text/plain, Size: 379 bytes --]
Hey guys,
Regarding this: http://orgmode.org/manual/Batch-execution.html
I also had success using --script, as in:
#!/Applications/Emacs.app/Contents/MacOS/Emacs --script
In the top of a .el file. You can then chmod it to be executable and run it.
Just thought I'd share, as an alternative, but I'm not sure if there are
any subtle differences, though.
Cheers,
- Marcelo.
[-- Attachment #2: Type: text/html, Size: 621 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-29 15:47 Batch execution and --script Marcelo de Moraes Serpa
@ 2012-08-29 16:42 ` Nick Daly
2012-08-29 17:50 ` Marcelo de Moraes Serpa
2012-08-29 18:29 ` Nick Dokos
0 siblings, 2 replies; 10+ messages in thread
From: Nick Daly @ 2012-08-29 16:42 UTC (permalink / raw)
To: Marcelo de Moraes Serpa; +Cc: Org Mode
On Wed, Aug 29, 2012 at 10:47 AM, Marcelo de Moraes Serpa
<celoserpa@gmail.com> wrote:
> Hey guys,
>
> Regarding this: http://orgmode.org/manual/Batch-execution.html
>
> I also had success using --script, as in:
>
> #!/Applications/Emacs.app/Contents/MacOS/Emacs --script
>
> In the top of a .el file. You can then chmod it to be executable and run it.
Would you mind sharing a simple .el file you'd use that way? The
site's example is a bash script, and I wonder how much cleaner a .el
file would be.
Nick
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-29 16:42 ` Nick Daly
@ 2012-08-29 17:50 ` Marcelo de Moraes Serpa
2012-08-30 5:34 ` Bastien
2012-08-29 18:29 ` Nick Dokos
1 sibling, 1 reply; 10+ messages in thread
From: Marcelo de Moraes Serpa @ 2012-08-29 17:50 UTC (permalink / raw)
To: Nick Daly; +Cc: Org Mode
[-- Attachment #1: Type: text/plain, Size: 1529 bytes --]
Sure!
Bear in mind I'm not an elisp expert, and I got it working after a lot of
trial and error. I'm using this script as part of a quickblogging engine
I'm writing for org (still testing, will share once it works as expected)
so that I can blog from directly from my journal org file to a jekyll blog.
I also created a new function based off org-export-generic called
org-export-generic-markdown which can be called in a non-interactive way,
so that it could work from the script.
The script basically exports a specific org file to markdown (in the same
dir the org file is located). Now I want to make it accept command-line
arguments. I will check it out tonight.
Here it goes:
http://pastie.org/4611632
This is pretty powerful, as you can also return data from the script by
using princ. I can imagine millions of ways this could be used to integrate
org with other apps/languages.
- Marcelo.
On Wed, Aug 29, 2012 at 11:42 AM, Nick Daly <nick.m.daly@gmail.com> wrote:
> On Wed, Aug 29, 2012 at 10:47 AM, Marcelo de Moraes Serpa
> <celoserpa@gmail.com> wrote:
> > Hey guys,
> >
> > Regarding this: http://orgmode.org/manual/Batch-execution.html
> >
> > I also had success using --script, as in:
> >
> > #!/Applications/Emacs.app/Contents/MacOS/Emacs --script
> >
> > In the top of a .el file. You can then chmod it to be executable and run
> it.
>
> Would you mind sharing a simple .el file you'd use that way? The
> site's example is a bash script, and I wonder how much cleaner a .el
> file would be.
>
> Nick
>
[-- Attachment #2: Type: text/html, Size: 2315 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-29 17:50 ` Marcelo de Moraes Serpa
@ 2012-08-30 5:34 ` Bastien
2012-11-28 2:18 ` Bernt Hansen
0 siblings, 1 reply; 10+ messages in thread
From: Bastien @ 2012-08-30 5:34 UTC (permalink / raw)
To: Marcelo de Moraes Serpa; +Cc: Org Mode, Nick Daly
Hi Marcelo,
Marcelo de Moraes Serpa <celoserpa@gmail.com> writes:
> I also created a new function based off org-export-generic called
> org-export-generic-markdown which can be called in a non-interactive
> way, so that it could work from the script.
NB: While org-export-generic.el was handy for a while, developers should
not rely on it write new code. It is obsoleted by org-export.el.
--
Bastien
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-30 5:34 ` Bastien
@ 2012-11-28 2:18 ` Bernt Hansen
2012-12-04 14:25 ` Bastien
0 siblings, 1 reply; 10+ messages in thread
From: Bernt Hansen @ 2012-11-28 2:18 UTC (permalink / raw)
To: Bastien; +Cc: Org Mode, Nick Daly, Marcelo de Moraes Serpa
Bastien <bzg@altern.org> writes:
> Hi Marcelo,
>
> Marcelo de Moraes Serpa <celoserpa@gmail.com> writes:
>
>> I also created a new function based off org-export-generic called
>> org-export-generic-markdown which can be called in a non-interactive
>> way, so that it could work from the script.
>
> NB: While org-export-generic.el was handy for a while, developers should
> not rely on it write new code. It is obsoleted by org-export.el.
Hi Bastien,
I suggest you put a notice at the top of org-export-generic.el with this
notice and suggest future developers use org-export.el instead.
Regards,
Bernt
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-29 16:42 ` Nick Daly
2012-08-29 17:50 ` Marcelo de Moraes Serpa
@ 2012-08-29 18:29 ` Nick Dokos
2012-08-29 18:35 ` Marcelo de Moraes Serpa
1 sibling, 1 reply; 10+ messages in thread
From: Nick Dokos @ 2012-08-29 18:29 UTC (permalink / raw)
To: Nick Daly; +Cc: Org Mode, Marcelo de Moraes Serpa
Nick Daly <nick.m.daly@gmail.com> wrote:
> On Wed, Aug 29, 2012 at 10:47 AM, Marcelo de Moraes Serpa
> <celoserpa@gmail.com> wrote:
> > Hey guys,
> >
> > Regarding this: http://orgmode.org/manual/Batch-execution.html
> >
> > I also had success using --script, as in:
> >
> > #!/Applications/Emacs.app/Contents/MacOS/Emacs --script
> >
> > In the top of a .el file. You can then chmod it to be executable and run it.
>
> Would you mind sharing a simple .el file you'd use that way? The
> site's example is a bash script, and I wonder how much cleaner a .el
> file would be.
>
Marcelo posted a larger example, but maybe a very small example might be
helpful. Put the following in some file (I called it hello.el but the
name does not really matter):
--8<---------------cut here---------------start------------->8---
#! /usr/local/bin/emacs --script
(message "Hello World!")
--8<---------------cut here---------------end--------------->8---
Make it executable:
chmod +x hello.el
and run it:
./hello.el
Nick
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-29 18:29 ` Nick Dokos
@ 2012-08-29 18:35 ` Marcelo de Moraes Serpa
2012-08-29 18:59 ` Thorsten Jolitz
2012-08-29 19:13 ` Nick Dokos
0 siblings, 2 replies; 10+ messages in thread
From: Marcelo de Moraes Serpa @ 2012-08-29 18:35 UTC (permalink / raw)
To: nicholas.dokos; +Cc: Org Mode, Nick Daly
[-- Attachment #1: Type: text/plain, Size: 1516 bytes --]
Hi Nick,
Thanks for turning it into a concise example :)
Is that somewhere in the manual or Worg? Perhaps it should be added. I
never contributed to Worg, I will look into how tonight.
This is a subject that should be explored more. I see a lot of potential in
having CLI .el scripts (i.e taking the emacs GUI out of the equation).
- Marcelo.
On Wed, Aug 29, 2012 at 1:29 PM, Nick Dokos <nicholas.dokos@hp.com> wrote:
> Nick Daly <nick.m.daly@gmail.com> wrote:
>
> > On Wed, Aug 29, 2012 at 10:47 AM, Marcelo de Moraes Serpa
> > <celoserpa@gmail.com> wrote:
> > > Hey guys,
> > >
> > > Regarding this: http://orgmode.org/manual/Batch-execution.html
> > >
> > > I also had success using --script, as in:
> > >
> > > #!/Applications/Emacs.app/Contents/MacOS/Emacs --script
> > >
> > > In the top of a .el file. You can then chmod it to be executable and
> run it.
> >
> > Would you mind sharing a simple .el file you'd use that way? The
> > site's example is a bash script, and I wonder how much cleaner a .el
> > file would be.
> >
>
> Marcelo posted a larger example, but maybe a very small example might be
> helpful. Put the following in some file (I called it hello.el but the
> name does not really matter):
>
> --8<---------------cut here---------------start------------->8---
> #! /usr/local/bin/emacs --script
>
> (message "Hello World!")
> --8<---------------cut here---------------end--------------->8---
>
> Make it executable:
>
> chmod +x hello.el
>
> and run it:
>
> ./hello.el
>
> Nick
>
>
[-- Attachment #2: Type: text/html, Size: 2393 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-29 18:35 ` Marcelo de Moraes Serpa
@ 2012-08-29 18:59 ` Thorsten Jolitz
2012-08-29 19:13 ` Nick Dokos
1 sibling, 0 replies; 10+ messages in thread
From: Thorsten Jolitz @ 2012-08-29 18:59 UTC (permalink / raw)
To: emacs-orgmode
Marcelo de Moraes Serpa <celoserpa@gmail.com> writes:
Hi Marcelo,
> This is a subject that should be explored more. I see a lot of
> potential in having CLI .el scripts (i.e taking the emacs GUI out of
> the equation).
I once asked a related question on stackoverflow, and recieved this
answer that shows how to
- become more independent of the location of the emacs executable
- pass more than one argument on the shebang line
at the same time:
,-----------------------------------------------------------------------------
| Many unix variants only allow a single argument to the program on
| the shebang line. Sad, but true. If you use #!/usr/bin/env emacs so
| as not to depend on the location of the emacs executable, you can't
| pass an argument at all.
|
| Chaining scripts is a possibility on some systems, but that too is
| not supported everywhere.
|
| You can go the time-honored route of writing a script that is both
| a shell script and an Emacs Lisp script (like Perl's if
| $running_under_some_shell, for example). It sure looks hackish, but
| it works.
|
| Elisp comments begin with ;, which in the shell separates two
| up commands. So we can use a ; followed by a shell instruction to
| vote switch over to Emacs, with the actual Lisp code beginning on the
| 21 next line. Shells don't like an empty command though, so we need to
| down find something that both the shell and Emacs treat as a no-op, so
| vote put before the ;. The shell no-op command is :; you can write it
| ":" as far as the shell is concerned, and Emacs parses that as a
| constant at top level which is also a no-op.
|
| #! /bin/sh
| ":"; exec emacs --no-site-file --script "$0" -- "$@" # -*-emacs-lisp-*-
| (print (+ 2 2))
`-----------------------------------------------------------------------------
Maybe thats interesting for you. The full question is here:
http://stackoverflow.com/questions/6238331/emacs-shell-scripts-how-to-put-initial-options-into-the-script
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Batch execution and --script
2012-08-29 18:35 ` Marcelo de Moraes Serpa
2012-08-29 18:59 ` Thorsten Jolitz
@ 2012-08-29 19:13 ` Nick Dokos
1 sibling, 0 replies; 10+ messages in thread
From: Nick Dokos @ 2012-08-29 19:13 UTC (permalink / raw)
To: Marcelo de Moraes Serpa; +Cc: Org Mode, Nick Daly
Marcelo de Moraes Serpa <celoserpa@gmail.com> wrote:
> Is that somewhere in the manual or Worg? Perhaps it should be added. I
> never contributed to Worg, I will look into how tonight.
The --script is described in the emacs manual, but no example is
provided. Adding it to Worg (maybe with a two-stage explanation:
trivial "Hello World" example, followed by an org-specific example)
is a good idea.
For contributing to Worg, see the "Maintenance of Worg" section:
http://orgmode.org/worg/#sec-4
> This is a subject that should be explored more. I see a lot of
> potential in having CLI .el scripts (i.e taking the emacs GUI out of
> the equation).
Note that you could do this even before --script was invented:
emacs --batch -l /path/to/somefile.el
is exactly equivalent to the --script invocation of somefile.el, which
in turn is more or less[fn:1] equivalent to stuffing the above command
line into a bash script file, making *that* executable and running it.
The --script method is a bit more convenient but it is just "syntactic
sugar".
Nick
Footnotes:
[fn:1] There is an extra fork/exec of bash in this method, but that's about it.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-12-04 14:50 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-29 15:47 Batch execution and --script Marcelo de Moraes Serpa
2012-08-29 16:42 ` Nick Daly
2012-08-29 17:50 ` Marcelo de Moraes Serpa
2012-08-30 5:34 ` Bastien
2012-11-28 2:18 ` Bernt Hansen
2012-12-04 14:25 ` Bastien
2012-08-29 18:29 ` Nick Dokos
2012-08-29 18:35 ` Marcelo de Moraes Serpa
2012-08-29 18:59 ` Thorsten Jolitz
2012-08-29 19:13 ` Nick Dokos
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).