From edaab6a6a7830ef9153a60d208bb6507ca4227f5 Mon Sep 17 00:00:00 2001 From: boardbloke Date: Thu, 22 Aug 2013 15:26:34 +0100 Subject: [PATCH] Added support for specifying an output directory not just an output file Cleaned up the boolean logic for when out and dir args are added to command line --- .../gradle/js/tasks/RequireJsTask.groovy | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/groovy/com/eriwen/gradle/js/tasks/RequireJsTask.groovy b/src/main/groovy/com/eriwen/gradle/js/tasks/RequireJsTask.groovy index e5e178c..91948df 100644 --- a/src/main/groovy/com/eriwen/gradle/js/tasks/RequireJsTask.groovy +++ b/src/main/groovy/com/eriwen/gradle/js/tasks/RequireJsTask.groovy @@ -16,6 +16,8 @@ package com.eriwen.gradle.js.tasks import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Optional +import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction import com.eriwen.gradle.js.ResourceUtil import com.eriwen.gradle.js.RhinoExec @@ -28,12 +30,16 @@ class RequireJsTask extends SourceTask { private static final ResourceUtil RESOURCE_UTIL = new ResourceUtil() private final RhinoExec rhino = new RhinoExec(project) - @OutputFile def dest - @Input def ignoreExitCode = false + @OutputDirectory + @Optional + def destDir - File getDest() { - project.file(dest) - } + @OutputFile + @Optional + def dest + + @Input + def ignoreExitCode = false @TaskAction def run() { @@ -47,17 +53,17 @@ class RequireJsTask extends SourceTask { args.add("${project.requirejs.buildprofile.canonicalPath}") } - def outAdded = false - if (!options.containsKey("out")) { - args.add("out=${getDest().canonicalPath}") - outAdded = true + if (destDir) { + args.add("dir=${ project.file(destDir).canonicalPath}") } + if (dest) { + args.add("out=${ project.file(dest).canonicalPath}") + } + options.each() { key, value -> - logger.debug("${key} == ${value}") - if (key.equalsIgnoreCase("out") & !outAdded) { - args.add("out=${getDest().canonicalPath}") - outAdded = true - } else { + logger.debug("${key} == ${options[value]}") + def keyAlreadyAdded = (key.equalsIgnoreCase("out") && dest) || (key.equalsIgnoreCase("dir") && destDir) + if (!keyAlreadyAdded) { args.add("${key}=${value}") } }