[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-kawa 34b68ce 052/119: Add check for deps with run-k
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-kawa 34b68ce 052/119: Add check for deps with run-kawa is called. Uses emacs advice on run-kawa. |
Date: |
Sun, 1 Aug 2021 18:30:37 -0400 (EDT) |
branch: elpa/geiser-kawa
commit 34b68ce5b3b197dc0c0ed54f5c68cb24b15dd8c0
Author: spellcard199 <spellcard199@protonmail.com>
Commit: spellcard199 <spellcard199@protonmail.com>
Add check for deps with run-kawa is called. Uses emacs advice on run-kawa.
---
elisp/geiser-kawa.el | 55 +++++++++++++++++++++++++++++++++++++++++++---------
quickstart.el | 10 ++++++----
2 files changed, 52 insertions(+), 13 deletions(-)
diff --git a/elisp/geiser-kawa.el b/elisp/geiser-kawa.el
index 59d5d26..f9b8dc2 100644
--- a/elisp/geiser-kawa.el
+++ b/elisp/geiser-kawa.el
@@ -75,16 +75,9 @@
;; End of adaptations for making this package separate from geiser
-;; Download, compile and package "kawa-geiser" and its recursive
-;; dependencies into a fat jar.
-(defun geiser-kawa-mvn-package-java-deps()
- (interactive)
- (let ((default-directory geiser-kawa-dir))
- (compile "./mvnw package")))
-
;; Using `mvn package' from the pom.xml's directory should produce a
;; jar containing all the java dependencies.
-(defcustom geiser-kawa-kawa-geiser-jar-path
+(defcustom geiser-kawa-deps-jar-path
(expand-file-name
"./target/kawa-geiser-0.1-SNAPSHOT-jar-with-dependencies.jar"
geiser-kawa-dir)
@@ -92,6 +85,47 @@
:type 'string
:group 'geiser-kawa)
+;; Download, compile and package "kawa-geiser" and its recursive
+;; dependencies into a fat jar.
+(defun geiser-kawa-deps-mvn-package()
+ (interactive)
+ (let* ((default-directory geiser-kawa-dir)
+ (mvn-buf (compile "./mvnw package")))
+ (when mvn-buf
+ (let ((save-buf (current-buffer)))
+ (switch-to-buffer-other-window mvn-buf)
+ (end-of-buffer)
+ (switch-to-buffer-other-window save-buf)))))
+
+(defun geiser-kawa--deps-run-kawa-advice-add()
+ (add-function :override
+ (symbol-function 'run-kawa)
+ #'geiser-kawa--deps-run-kawa-advice))
+
+(defun geiser-kawa--deps-run-kawa-advice-remove()
+ (remove-function (symbol-function 'run-kawa)
+ #'geiser-kawa--deps-run-kawa-advice))
+
+(defun geiser-kawa--deps-run-kawa-unadviced()
+ (geiser-kawa--deps-run-kawa-advice-remove)
+ (run-kawa)
+ (geiser-kawa--deps-run-kawa-advice-add))
+
+(defun geiser-kawa--deps-run-kawa-removecompilhook(buf desc)
+ (geiser-kawa--deps-run-kawa-unadviced)
+ (remove-hook 'compilation-finish-functions
+ #'geiser-kawa--deps-run-kawa-remove-compil-hook))
+
+(defun geiser-kawa--deps-run-kawa-advice()
+ (if (file-exists-p geiser-kawa-deps-jar-path)
+ (geiser-kawa--deps-run-kawa-unadviced)
+ (when (y-or-n-p
+ "geiser-kawa depends on additional java libraries. Do you want to
download and compile them now?")
+ (add-hook
+ 'compilation-finish-functions
+ #'geiser-kawa--deps-run-kawa-removecompilhook)
+ (geiser-kawa-deps-mvn-package))))
+
;;; Customization:
@@ -154,7 +188,7 @@
(concat lib-dir "jline.jar"))
nil))
nil)
- (list geiser-kawa-kawa-geiser-jar-path))))
+ (list geiser-kawa-deps-jar-path))))
(mapconcat #'identity jars ":")))
(defvar geiser-kawa--arglist
@@ -389,6 +423,9 @@ Argument MOD is passed by geiser, but it's not used here."
(geiser-impl--add-to-alist 'regexp "\\.scm$" 'kawa t)
(geiser-impl--add-to-alist 'regexp "\\.sld$" 'kawa t)
+;; Check for kawa-geiser jar each time `run-kawa' is called.
+(geiser-kawa--deps-run-kawa-advice-add)
+
(provide 'geiser-kawa)
;;; geiser-kawa.el ends here
diff --git a/quickstart.el b/quickstart.el
index 74f99cd..1351f5a 100644
--- a/quickstart.el
+++ b/quickstart.el
@@ -9,12 +9,14 @@
(require 'geiser-mode)
(defun run-kawa-after-compilation-finishes (buffer desc)
;; Use included Kawa, to avoid issues with unsupported old Kawa versions (<
3.1.1)
- (setq geiser-kawa-use-kawa-version-included-in-kawa-geiser t)
+ (setq geiser-kawa-use-included-kawa t)
(run-kawa)
(switch-to-buffer-other-window "*scratch*")
(geiser-impl--set-buffer-implementation 'kawa)
(geiser-mode)
- (remove-hook 'compilation-finish-functions
#'run-kawa-after-compilation-finishes))
+ (remove-hook 'compilation-finish-functions
+ #'run-kawa-after-compilation-finishes))
-(add-hook 'compilation-finish-functions #'run-kawa-after-compilation-finishes)
-(geiser-kawa-mvn-package-java-deps)
+(add-hook 'compilation-finish-functions
+ #'run-kawa-after-compilation-finishes)
+(geiser-kawa-deps-mvn-package)
- [nongnu] elpa/geiser-kawa 274f990 024/119: Use mvnw (maven-wrapper) as default command to compile kawa-geiser, (continued)
- [nongnu] elpa/geiser-kawa 274f990 024/119: Use mvnw (maven-wrapper) as default command to compile kawa-geiser, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 55efc48 043/119: Fix non-passing Autodoc test, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa a709cfc 027/119: Small reword in README, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 4938a98 049/119: Update kawa-devutil dep + fix code accordingly, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 5521b28 025/119: Update README after joining of geiser-kawa and kawa-geiser projects, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa b95e191 003/119: README - Add small recap table about difference from geiser-kawa-scheme, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 5549434 005/119: Add Cask file, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 590968e 045/119: Add autodoc support for constructor methods, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 47a2956 044/119: Refactor kawageiser.Geiser.java, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 9f3a057 050/119: README - Add more information about java completion + update kawa-devutil dep, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 34b68ce 052/119: Add check for deps with run-kawa is called. Uses emacs advice on run-kawa.,
Philip Kaludercic <=
- [nongnu] elpa/geiser-kawa 0aa42cb 040/119: Fix broken test, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa b8647aa 057/119: Fix error in func name, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 79dec54 061/119: Add support for viewing Expression tree, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 8d6202f 081/119: Refactor + Fix style + Copyright notices, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 1ffe084 097/119: Fixes for windows support + README.org: add instructions, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa ad862b1 090/119: Update README.org, TODO.org, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa d7cb7d9 105/119: Remove advice from "run-kawa" + add "geiser-kawa-run-kawa" function, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa ff93297 112/119: README.org - small changes, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 71f8a69 114/119: Fix checkdoc and lint warnings in preparation for melpa recipe update, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 1538f1f 062/119: TODO.org: update, Philip Kaludercic, 2021/08/01