Next: Switch Emacs Init, Previous: Create and Update Projects, Up: Build Scripts [Index]
(defun get-parsed-tree (buf) "Given a buffer BUF, return a parsed tree." (with-current-buffer buf (org-element-parse-buffer 'headline))) (defun oep (p e) "Given a property P and element E, return that property's value." (org-element-property p e)) (defun start-end (buf prop) "Given a buffer BUF and a property PROP, return the starting and ending points." (org-element-map (get-parsed-tree buf) 'headline (lambda (e) (when (string= (oep :CUSTOM_ID e) prop) (list (oep :begin e) (oep :end e)))) nil t)) (defun update-old-project (&optional title author bucket) "Update an old project with new code." (with-current-buffer (car (find-file-noselect "./*.org" nil nil t)) (save-excursion (goto-char (point-min)) ;; (when title ;; (re-search-forward "^#[+]title:\s*\\(.*\\)$") ;; (replace-match title t nil nil 1)) ;; (when author ;; (re-search-forward "^#[+]author:\s*\\(.*\\)$") ;; (replace-match author t nil nil 1)) ;; (when bucket ;; (re-search-forward "^#[+]bucket:\s*\\(.*\\)$") ;; (replace-match bucket t nil nil 1)) (let* ((curbuf (current-buffer)) (orgsyncbuf (find-file-noselect (expand-file-name "Template.org" "/usr/local/dev/Templates/Org"))) (start-end-curbuf (start-end curbuf "build-tools")) (start-end-sync (start-end orgsyncbuf "build-tools"))) (list start-end-curbuf start-end-sync)))))
(update-old-project)
((4928 36833) (4928 36833))
• Create and Update Script |