Meikel  Brandmeyer avatar Meikel Brandmeyer committed 85f8657

Add first stab at gradle plugin

Comments (0)

Files changed (4)

     compileClojure.dependsOn compileJava
 }
 
+project(':gradle') {
+    apply plugin: 'groovy'
+    apply plugin: 'clojure'
+
+    repositories {
+        mavenRepo urls: 'http://clojars.org/repo'
+    }
+
+    dependencies {
+        compile gradleApi()
+        compile 'clojuresque:clojuresque:1.4.0-SNAPSHOT'
+
+        groovy localGroovy()
+    }
+
+    uploadArchives {
+        clojarsDeploy()
+    }
+}
+
+
 project(':client') {
     task nailgunClientZip(type: Zip) {
         archiveName = "vimclojure-nailgun-client-" + project.version + ".zip"

gradle/src/main/groovy/vimclojure/VimClojurePlugin.groovy

+/*-
+ * Copyright 2009,2010 © Meikel Brandmeyer.
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+package vimclojure
+
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.api.tasks.JavaExec
+
+import clojuresque.ClojurePlugin
+
+public class VimClojurePlugin implements Plugin<Project> {
+    public void apply(Project project) {
+        project.apply plugin: ClojurePlugin.class
+
+        project.dependencies {
+            development 'vimclojure:server:2.3.0-SNAPSHOT'
+        }
+
+        project.tasks.add(name: 'runNailgun', type: JavaExec.class,
+                dependsOn: project.classes) {
+            classpath = project.files(
+                project.sourceSets.main.clojure.sourceDir,
+                project.sourceSets.main.classesDir,
+                project.configurations.testRuntime,
+                project.configurations.development
+            )
+            main = 'vimclojure.nailgun.NGServer'
+            args = [ '127.0.0.1' ]
+        }
+    }
+}

gradle/src/main/resources/META-INF/gradle-plugins/vimclojure.properties

+implementation-class=vimclojure.VimClojurePlugin
 include 'client'
 include 'server'
 include 'vim'
+include 'gradle'
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.