From 91d37b288290b99993cdeccbca653af87dbfcad8 Mon Sep 17 00:00:00 2001 From: Dierk Koenig Date: Tue, 24 Feb 2015 01:08:54 +0100 Subject: we now have two repl tasks to choose from :-) --- src/main/groovy/frege/gradle/FregePlugin.groovy | 7 +-- src/main/groovy/frege/gradle/FregeReplTask.groovy | 37 +++++++++++++ .../groovy/org/gradle/frege/FregeReplTask.groovy | 60 ---------------------- 3 files changed, 41 insertions(+), 63 deletions(-) create mode 100644 src/main/groovy/frege/gradle/FregeReplTask.groovy delete mode 100644 src/main/groovy/org/gradle/frege/FregeReplTask.groovy (limited to 'src/main/groovy') diff --git a/src/main/groovy/frege/gradle/FregePlugin.groovy b/src/main/groovy/frege/gradle/FregePlugin.groovy index e2777ed..1ce9eaa 100644 --- a/src/main/groovy/frege/gradle/FregePlugin.groovy +++ b/src/main/groovy/frege/gradle/FregePlugin.groovy @@ -14,11 +14,12 @@ class FregePlugin implements Plugin { } project.tasks.classes.dependsOn("compileFrege") - def oFR = project.task('openFregeRepl', type: FregeReplTask, group: 'Runtime', dependsOn: 'classes') - oFR.outputs.upToDateWhen { false } + def replTask = project.task('fregeRepl', type: FregeReplTask, group: 'Tools', dependsOn: 'classes') + replTask.outputs.upToDateWhen { false } // always run, regardless of up to date checks - project.task('fregeRepl', type: ReplTask) +// project.task('fregeRepl', type: ReplTask) // we can now choose + project.task('fregeNativeGen', type: NativeGenTask) } diff --git a/src/main/groovy/frege/gradle/FregeReplTask.groovy b/src/main/groovy/frege/gradle/FregeReplTask.groovy new file mode 100644 index 0000000..50d8026 --- /dev/null +++ b/src/main/groovy/frege/gradle/FregeReplTask.groovy @@ -0,0 +1,37 @@ +package frege.gradle + +import org.gradle.api.DefaultTask +import org.gradle.api.internal.file.FileResolver +import org.gradle.api.tasks.* +import org.gradle.process.internal.DefaultJavaExecAction +import org.gradle.process.internal.JavaExecAction + +import javax.management.relation.Relation + +class FregeReplTask extends DefaultTask { + + static String DEFAULT_SRC_DIR = "src/main/frege" // TODO: should this come from a source set? + + @Optional @InputDirectory + File sourceDir = new File(project.projectDir, DEFAULT_SRC_DIR) + + @TaskAction + void openFregeRepl() { + + if (! sourceDir.exists() ) { + def currentDir = new File('.') + logger.info "Intended source dir '${sourceDir.absolutePath}' doesn't exist. Using current dir '${currentDir.absolutePath}' ." + sourceDir = currentDir + } + + FileResolver fileResolver = getServices().get(FileResolver.class) + JavaExecAction action = new DefaultJavaExecAction(fileResolver) + action.setMain("frege.repl.FregeRepl") + action.workingDir = sourceDir + action.standardInput = System.in + action.setClasspath(project.files(project.configurations.compile )) + + action.execute() + } + +} \ No newline at end of file diff --git a/src/main/groovy/org/gradle/frege/FregeReplTask.groovy b/src/main/groovy/org/gradle/frege/FregeReplTask.groovy deleted file mode 100644 index 03ac78d..0000000 --- a/src/main/groovy/org/gradle/frege/FregeReplTask.groovy +++ /dev/null @@ -1,60 +0,0 @@ -package org.gradle.frege - -import org.gradle.api.DefaultTask -import org.gradle.api.internal.file.FileResolver -import org.gradle.api.tasks.* -import org.gradle.process.internal.DefaultJavaExecAction -import org.gradle.process.internal.JavaExecAction - -import javax.management.relation.Relation - -class FregeReplTask extends DefaultTask { - - static String DEFAULT_SRC_DIR = "src/main/frege" // TODO: should this come from a source set? - - @Optional @InputDirectory - File replDir - - @Optional @InputDirectory - File sourceDir = new File(project.projectDir, DEFAULT_SRC_DIR) - - @TaskAction - void openFregeRepl() { - - if (! replDir) replDir = new File(System.properties.'user.home'.toString(), "/.frege/repl") - - def replJarFileNames = [] - - if (! replDir.exists() ) { - throw new StopActionException("REPL installation directory '${replDir.absolutePath}' does not exist. Cannot start the REPL.") - } - - replDir.eachFileRecurse { file -> - if (file.name ==~ /^(frege-|ecj-|jline).*\.jar$/) { - replJarFileNames << file.absolutePath - } - } - logger.debug "repl installation jar file names are ${replJarFileNames}" - - if (replJarFileNames.size() < 6) { - throw new StopActionException("Found only ${replJarFileNames.size()} jars in REPL installation directory '${replDir.absolutePath}'. Cannot start the REPL.") - } - - if (! sourceDir.exists() ) { - def currentDir = new File('.') - logger.info "Intended source dir '${sourceDir.absolutePath}' doesn't exist. Using current dir '${currentDir.absolutePath}' ." - sourceDir = currentDir - } - - - FileResolver fileResolver = getServices().get(FileResolver.class) - JavaExecAction action = new DefaultJavaExecAction(fileResolver) - action.setMain("frege.repl.FregeRepl") - action.workingDir = sourceDir - action.standardInput = System.in - action.setClasspath(project.files(project.configurations.compile , *replJarFileNames)) - - action.execute() - } - -} \ No newline at end of file -- cgit