Files
memex/system/inject-metadata.el

30 lines
1.1 KiB
EmacsLisp

(require 'org)
(defun org-agent-inject-metadata (file created edited)
(with-current-buffer (find-file-noselect file)
(org-with-wide-buffer
(goto-char (point-min))
(let ((props (org-get-property-block)))
(unless props
(org-id-get-create) ; Ensure drawer exists
(setq props (org-get-property-block))))
(org-set-property "CREATED" (org-agent-format-iso created))
(org-set-property "EDITED" (org-agent-format-iso edited))
(save-buffer)
(kill-buffer))))
(defun org-agent-format-iso (iso-date)
"Convert 2026-04-07T10:00:00+00:00 to [2026-04-07 Tue 10:00]"
(let ((time (parse-time-string iso-date)))
(format-time-string "[%Y-%m-%d %a %H:%M]" (apply #'encode-time time))))
;; Batch execution logic
(let ((lines (with-temp-buffer
(insert-file-contents "system/git-dates.txt")
(split-string (buffer-string) "\n" t))))
(dolist (line lines)
(let ((parts (split-string line "|")))
(when (= (length parts) 3)
(org-agent-inject-metadata (nth 0 parts) (nth 1 parts) (nth 2 parts))))))