Org: complicate package! statement for dev and use
This commit is contained in:
parent
df5c95068e
commit
b52bb68535
42
config.org
42
config.org
|
@ -1620,9 +1620,45 @@ I think the latest AucTeX may be a bit dodgy, so
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Org Mode
|
*** Org Mode
|
||||||
Use ~HEAD~ for development.
|
|
||||||
#+begin_src emacs-lisp
|
There are actually three possible package statements I may want to use for Org.
|
||||||
(package! org-mode :pin nil)
|
|
||||||
|
If I'm on a machine where I can push changes, I want to be able to develop Org.
|
||||||
|
I can check this by checking the content of the SSH key =~/.ssh/id_ed25519.pub=.
|
||||||
|
1. If this key exists and there isn't a repo at
|
||||||
|
=$straight-base-dir/straight/repos/org-mode= with the right remote, we should
|
||||||
|
install it as such.
|
||||||
|
2. If the key exists and repo are both set up, the package should just be ignored.
|
||||||
|
3. If the key does not exist, the Org's ~HEAD~ should just be used
|
||||||
|
|
||||||
|
To account for this situation properly, we need a short script to determine the
|
||||||
|
correct package statement needed.
|
||||||
|
|
||||||
|
#+name: org-pkg-statement
|
||||||
|
#+begin_src emacs-lisp :tangle no
|
||||||
|
(setq doom-first-input-hook nil) ; HACK temporary bugfix
|
||||||
|
(load (expand-file-name "core/core.el" user-emacs-directory) nil t) ; for `doom-local-dir'
|
||||||
|
(let ((dev-key (and (file-exists-p "~/.ssh/id_ed25519.pub")
|
||||||
|
(= 0 (shell-command "cat ~/.ssh/id_ed25519.pub | grep -q AAAAC3NzaC1lZDI1NTE5AAAAIOZZqcJOLdN+QFHKyW8ST2zz750+8TdvO9IT5geXpQVt"))))
|
||||||
|
(dev-pkg (let ((default-directory (expand-file-name "straight/repos/org-mode" doom-local-dir)))
|
||||||
|
(and (file-exists-p default-directory)
|
||||||
|
(string= "git@code.orgmode.org:bzg/org-mode.git\n" (shell-command-to-string "git remote get-url origin"))))))
|
||||||
|
(prin1-to-string
|
||||||
|
(cond ((and dev-key dev-pkg)
|
||||||
|
`(package! org-mode
|
||||||
|
:recipe (:local-repo ,(expand-file-name "straight/repos/org-mode" doom-local-dir)
|
||||||
|
:files ("*.el" "lisp/*.el" "contrib/lisp/*.el" "contrib/scripts"))
|
||||||
|
:pin nil))
|
||||||
|
(dev-key
|
||||||
|
`(package! org-mode
|
||||||
|
:recipe (:host nil :repo "git@code.orgmode.org:bzg/org-mode.git"
|
||||||
|
:files ("*.el" "lisp/*.el" "contrib/lisp/*.el" "contrib/scripts"))
|
||||||
|
:pin nil)
|
||||||
|
(t `(package! org-mode :pin nil))))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp :noweb no-export
|
||||||
|
<<org-pkg-statement()>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
**** Improve agenda/capture
|
**** Improve agenda/capture
|
||||||
|
|
Loading…
Reference in a new issue