[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/javaimp-gradle 66c8204: Fixes for gradle
From: |
Filipp Gunbin |
Subject: |
[elpa] scratch/javaimp-gradle 66c8204: Fixes for gradle |
Date: |
Fri, 1 Nov 2019 12:53:37 -0400 (EDT) |
branch: scratch/javaimp-gradle
commit 66c8204255ed5fb5a2fc447b948a453eb901ff04
Author: Filipp Gunbin <address@hidden>
Commit: Filipp Gunbin <address@hidden>
Fixes for gradle
---
packages/javaimp/getInfo.inc.kts | 21 ++++++++++++++
packages/javaimp/getJarsOnly.inc.kts | 8 ++++++
packages/javaimp/javaimp-gradle.el | 54 +++++++++++++-----------------------
3 files changed, 48 insertions(+), 35 deletions(-)
diff --git a/packages/javaimp/getInfo.inc.kts b/packages/javaimp/getInfo.inc.kts
new file mode 100644
index 0000000..3aceb9b
--- /dev/null
+++ b/packages/javaimp/getInfo.inc.kts
@@ -0,0 +1,21 @@
+// use syntax which is valid both in Groovy and in Kotlin
+doLast {
+ println("id=${project.group}:${project.name}:${project.version}")
+ if (project.parent != null) {
+
println("parent-id=${project.parent.group}:${project.parent.name}:${project.parent.version}")
+ }
+ println("file=${project.buildFile}")
+ println("final-name=${project.archivesBaseName}")
+ println("build-dir=${project.buildDir}")
+ if (project.hasProperty("sourceSets")) {
+ println("source-dirs=" + project.sourceSets.stream()
+ .flatMap { it.java.srcDirs.stream().map { it.path } }
+ .collect(Collectors.joining(File.pathSeparator)))
+ println("dep-jars=" + project.sourceSets.stream()
+ .flatMap { it.compileClasspath.files.stream().filter {
it.name.endsWith("jar") }.map { it.path } }
+ .collect(Collectors.joining(File.pathSeparator)))
+ } else {
+ println("source-dirs=")
+ println("dep-jars=")
+ }
+}
diff --git a/packages/javaimp/getJarsOnly.inc.kts
b/packages/javaimp/getJarsOnly.inc.kts
new file mode 100644
index 0000000..4951255
--- /dev/null
+++ b/packages/javaimp/getJarsOnly.inc.kts
@@ -0,0 +1,8 @@
+// use syntax which is valid both in Groovy and in Kotlin
+doLast {
+ if (project.hasProperty("sourceSets")) {
+ println(project.sourceSets.stream()
+ .flatMap { it.compileClasspath.files.stream().filter {
it.name.endsWith("jar") }.map { it.path } }
+ .collect(Collectors.joining(File.pathSeparator)))
+ }
+}
diff --git a/packages/javaimp/javaimp-gradle.el
b/packages/javaimp/javaimp-gradle.el
index 62be517..9dc74fd 100644
--- a/packages/javaimp/javaimp-gradle.el
+++ b/packages/javaimp/javaimp-gradle.el
@@ -28,30 +28,16 @@ gradlew program, it is used in preference."
:group 'javaimp
:type 'string)
-(defconst javaimp--gradle-get-info-action
- "doLast {
- println(\"id=${project.group}:${project.name}:${project.version}\")
- if (project.parent != null) {
-
println(\"parent-id=${project.parent.group}:${project.parent.name}:${project.parent.version}\")
- }
- println(\"file=${project.buildFile}\")
- println(\"final-name=${project.archivesBaseName}\")
- println(\"source-dirs=\" + sourceSets.stream()
- .flatMap { it.java.srcDirs.stream().map { it.path } }
- .collect(Collectors.joining(File.pathSeparator)))
- println(\"build-dir=${project.buildDir}\")
- println(\"dep-jars=\" + sourceSets.stream()
- .flatMap { it.compileClasspath.files.stream().filter {
it.name.endsWith(\"jar\") }.map { it.path } }
- .collect(Collectors.joining(File.pathSeparator)))
-}"
- "Task body, uses Java syntax to be reused in both Groovy and Kotlin")
-
-(defconst javaimp--gradle-get-jars-action
- "doLast {
- println(sourceSets.stream()
- .flatMap { it.compileClasspath.files.stream().filter {
it.name.endsWith(\"jar\") }.map { it.path } }
- .collect(Collectors.joining(File.pathSeparator)))
-}"
+(defconst javaimp--gradle-get-info-script
+ (with-temp-buffer
+ (insert-file-contents "getInfo.inc.kts")
+ (buffer-string))
+ "Task body, uses Java syntax to be reused in both Groovy and Kotlin")
+
+(defconst javaimp--gradle-get-jars-script
+ (with-temp-buffer
+ (insert-file-contents "getJarsOnly.inc.kts")
+ (buffer-string))
"Task body, uses Java syntax to be reused in both Groovy and Kotlin")
(defun javaimp--gradle-visit (file)
@@ -62,7 +48,7 @@ invokes task contained in it. This task returns all needed
information."
(message "Visiting Gradle build file %s..." file)
(let* ((alists (javaimp--gradle-call file
- javaimp--gradle-get-info-action
+ javaimp--gradle-get-info-script
#'javaimp--gradle-handler
"javaimpTask"))
(modules (mapcar (lambda (alist)
@@ -75,18 +61,16 @@ information."
(defun javaimp--gradle-handler ()
(goto-char (point-min))
- (let (alist res parts sym val)
- (while (not (eobp))
- (setq parts (split-string (thing-at-point 'line) "[=\n]+" t))
- (setq sym (intern (or (nth 0 parts)
- (error "Invalid line in gradle output: %s"
- (thing-at-point 'line))))
- val (nth 1 parts))
+ (let (alist res sym val)
+ (while (re-search-forward "^\\([[:alnum:]-]+\\)=\\(.*\\)$" nil t)
+ (setq sym (intern (match-string 1))
+ val (match-string 2))
+ (if (string-blank-p val)
+ (setq val nil))
(when (and (eq sym 'id) alist) ;start of next module
(push alist res)
(setq alist nil))
- (push (cons sym val) alist)
- (forward-line 1))
+ (push (cons sym val) alist))
(when alist ;last module
(push alist res))
(nreverse res)))
@@ -121,7 +105,7 @@ information."
;; local gradlew which needs to be invoked will usually reside
;; alongside top-level build file
(javaimp--gradle-call (javaimp-module-file-orig module)
- javaimp--gradle-get-jars-action
+ javaimp--gradle-get-jars-script
(lambda ()
;; expect just a single line
(thing-at-point 'line))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] scratch/javaimp-gradle 66c8204: Fixes for gradle,
Filipp Gunbin <=