Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stig/ob-applescript.el

AppleScript integration for Org Babel
https://github.com/stig/ob-applescript.el

Last synced: 12 days ago
JSON representation

AppleScript integration for Org Babel

Awesome Lists containing this project

README

        

#+startup: showall
#+TITLE: AppleScript integration for Org Babel

This module lets you run AppleScript from AppleScript source code blocks
with Org Babel.

This package is a direct result of attempting to answer a question on [[http://emacs.stackexchange.com/q/26374/10625][this
emacs.stackexchange.com thread]].

* Some simple examples

No arguments, no code -- just return a string.

#+BEGIN_SRC org
,#+BEGIN_SRC applescript
"Hello World"
,#+END_SRC

,#+RESULTS:
: Hello World
#+END_SRC

You can, however, pass a variable to a block:

#+BEGIN_SRC org
,#+BEGIN_SRC applescript :var subject="World"
"Hello " & subject
,#+END_SRC

,#+RESULTS:
: Hello World
#+END_SRC

You can use either =apples= or =applescript= as the language designation, to
cater for two popular major modes. Use whichever you like. I prefer the
font-locking of the =apples= one. This example also shows you can do
interactive stuff.

#+BEGIN_SRC org
,#+BEGIN_SRC apples
display alert "Danger! The WHAM is overheating!"
,#+END_SRC

,#+RESULTS:
: button returned:OK
#+END_SRC

If the result of the evaluation looks like a table, it'll become a table:

#+BEGIN_SRC org
,#+BEGIN_SRC apples
"fi fo
1 2
3 4"
,#+END_SRC

,#+RESULTS:
| fi | fo |
| 1 | 2 |
| 3 | 4 |
#+END_SRC

* Installation

=M-x package-install RET ob-applescript RET=

Then, load the package from your =~/.emacs.d/init.el=:

#+BEGIN_SRC emacs-lisp
(require 'ob-applescript)
#+END_SRC

* Ideas for future work (you're welcome to help!)

- =osascript= supports an interactive mode, which means I think it should be
possible to support =:session=.

- Adding some tests.

- Adding some more documentation & examples.