Previous: Key bindings and useful functions, Up: Working With Source Code

### 14.12 Batch execution

It is possible to call functions from the command line. This shell script calls `org-babel-tangle` on every one of its arguments.

Be sure to adjust the paths to fit your system.

         #!/bin/sh
         # -*- mode: shell-script -*-
         #
         # tangle files with org-mode
         #
         DIR=`pwd`
         FILES=""
         ORGINSTALL="~/src/org/lisp/org-install.el"

         # wrap each argument in the code required to call tangle on it
         for i in $@; do
             FILES="$FILES \"$i\""
         done

         emacs -Q --batch -l $ORGINSTALL \
         --eval "(progn
         (add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\"))
         (add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\"))
         (require 'org)(require 'org-exp)(require 'ob)(require 'ob-tangle)
         (mapc (lambda (file)
                (find-file (expand-file-name file \"$DIR\"))
                (org-babel-tangle)
                (kill-buffer)) '($FILES)))" 2>&1 |grep tangled