[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/javaimp d428651 1/2: * javaimp-gradle.el: Cosmetics
From: |
Filipp Gunbin |
Subject: |
[elpa] externals/javaimp d428651 1/2: * javaimp-gradle.el: Cosmetics |
Date: |
Fri, 8 Oct 2021 17:17:23 -0400 (EDT) |
branch: externals/javaimp
commit d428651fd9c944cab0f60c9e4c016bc4aadbecc3
Author: Filipp Gunbin <fgunbin@fastmail.fm>
Commit: Filipp Gunbin <fgunbin@fastmail.fm>
* javaimp-gradle.el: Cosmetics
---
javaimp-gradle.el | 45 +++++++++++++++++++++++++++++----------------
1 file changed, 29 insertions(+), 16 deletions(-)
diff --git a/javaimp-gradle.el b/javaimp-gradle.el
index af3fd5a..3e690e6 100644
--- a/javaimp-gradle.el
+++ b/javaimp-gradle.el
@@ -22,7 +22,8 @@
(defconst javaimp--gradle-task-body
(with-temp-buffer
- (insert-file-contents (expand-file-name "gradleTaskBody.inc.kts"
javaimp--basedir))
+ (insert-file-contents
+ (expand-file-name "gradleTaskBody.inc.kts" javaimp--basedir))
(buffer-string))
"Task body, uses syntax which can be used both in Groovy and Kotlin")
@@ -52,6 +53,12 @@ information."
(javaimp-module-id el))))))
(defun javaimp--gradle-handler ()
+ "Parse current buffer into list of project descriptors, each of
+which is an alist of attributes (NAME . VALUE). Each attribute
+occupies one line, and is of the form 'NAME=VALUE'. See file
+'gradleTaskBody.inc.kts' for the script which generates such
+output. Attribute 'id' signifies the start of another
+descriptor."
(goto-char (point-min))
(let (alist res sym val)
(while (re-search-forward "^\\([[:alnum:]-]+\\)=\\(.*\\)$" nil t)
@@ -68,16 +75,18 @@ information."
(nreverse res)))
(defun javaimp--gradle-module-from-alist (alist file-orig)
+ "Make `javaimp-module' structure out of attribute alist ALIST."
(make-javaimp-module
- :id (javaimp--gradle-id-from-semi-separated (cdr (assq 'id alist)))
- :parent-id (javaimp--gradle-id-from-semi-separated (cdr (assq 'parent-id
alist)))
+ :id (javaimp--gradle-id-from-semi-separated
+ (cdr (assq 'id alist)))
+ :parent-id (javaimp--gradle-id-from-semi-separated
+ (cdr (assq 'parent-id alist)))
:file (cdr (assq 'file alist))
:file-orig file-orig
;; jar/war supported
- :final-name (let ((final-name (javaimp-cygpath-convert-maybe
- (cdr (assq 'final-name alist)))))
- (and final-name
- (member (file-name-extension final-name) '("jar" "war"))
+ :final-name (when-let ((final-name (javaimp-cygpath-convert-maybe
+ (cdr (assq 'final-name alist)))))
+ (and (member (file-name-extension final-name) '("jar" "war"))
final-name))
:source-dirs (mapcar #'file-name-as-directory
(javaimp--split-native-path
@@ -92,7 +101,8 @@ information."
(defun javaimp--gradle-id-from-semi-separated (str)
(when str
- (let ((parts (split-string str ";" t)) artifact)
+ (let ((parts (split-string str ";" t))
+ artifact)
(unless (= (length parts) 3)
(error "Invalid project id: %s" str))
(setq artifact (nth 1 parts))
@@ -101,12 +111,13 @@ information."
;; convert "[:]foo:bar:baz" into "foo.bar.baz"
(setq artifact (replace-regexp-in-string
":" "." (string-remove-prefix ":" artifact))))
- (make-javaimp-id :group (nth 0 parts) :artifact artifact
+ (make-javaimp-id :group (nth 0 parts)
+ :artifact artifact
:version (nth 2 parts)))))
(defun javaimp--gradle-fetch-dep-jars-path (module)
- ;; always invoke on root file becase module's file may not exist
- ;; (even if reported as project.buildFile property)
+ ;; Always invoke on root file becase module's file may not exist,
+ ;; even if reported by Gradle as project.buildFile
(javaimp--gradle-call (javaimp-module-file-orig module)
javaimp--gradle-task-body
(lambda ()
@@ -118,11 +129,13 @@ information."
(defun javaimp--gradle-call (file init-script-body handler task)
(let* ((is-kotlin (equal (file-name-extension file) "kts"))
- (init-file (make-temp-file "javaimp" nil
- (if is-kotlin ".kts")
- (if is-kotlin
- (javaimp--gradle-init-script-kotlin
init-script-body)
- (javaimp--gradle-init-script
init-script-body))))
+ (init-file
+ (make-temp-file "javaimp" nil
+ (if is-kotlin ".kts")
+ (funcall (if is-kotlin
+ #'javaimp--gradle-init-script-kotlin
+ #'javaimp--gradle-init-script)
+ init-script-body)))
(local-gradlew (concat (file-name-directory file) "gradlew")))
(javaimp--call-build-tool
(if (file-exists-p local-gradlew)