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.
(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)))