Next: Samples, Previous: Boot Template, Up: Build Tools [Index]
The environment variable DEV can be in different locations and will be spelled
differently based on how the local machine is set up. For instance, on one
system, it will be at $HOME/Dev
while in another system it will be at
/usr/local/dev
. However, the ‘:tangle’ keyword does not expand variables in
the form ${DEV}
, but rather requires absolute paths, like /usr/local/dev
.
Therefore, this program works like a preprocessor for environment variables set
up as part of ‘:tangle’ lines, changing them to their system environment
variable values prior to tangling. It lives in the resources/tools
directory.
/opt/local/bin/
is incorrect. Perhaps it should be
#!/usb/bin/env emacs
instead.
(with-current-buffer (car (find-file-noselect "./*.org" nil nil t)) (save-excursion (goto-char (point-min)) (let ((re-search-str "\\(?::tangle\\|load-file \\(?:[\\]*\\)?[\"]\\)\s*\\(.*?/[dD]ev\\)/") (dev (getenv "DEV"))) (while (re-search-forward re-search-str nil t) (replace-match dev t nil nil 1))) (save-buffer) (require 'org) (org-babel-tangle)))