From 27f1f3e9cc390d3c3b69484862cc8187e5947b8d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 27 Jul 2016 15:51:42 -0700 Subject: [PATCH] Initial commit. --- .gitignore | 29 +++ .idea/compiler.xml | 23 ++ .idea/copyright/profiles_settings.xml | 3 + .idea/encodings.xml | 6 + .idea/inspectionProfiles/Project_Default.xml | 53 +++++ .../inspectionProfiles/profiles_settings.xml | 7 + .idea/kobalt.xml | 17 ++ .idea/misc.xml | 100 +++++++++ .idea/modules.xml | 9 + example/kobalt/src/Build.kt | 48 +++++ example/kobalt/wrapper/kobalt-wrapper.jar | Bin 0 -> 9230 bytes .../kobalt/wrapper/kobalt-wrapper.properties | 1 + example/kobaltw | 2 + example/kobaltw.bat | 4 + example/src/main/kotlin/com/example/Main.kt | 3 + .../src/test/kotlin/com/example/MainTest.kt | 8 + kobalt-versioneye.iml | 37 ++++ kobalt/Build.kt.iml | 12 ++ kobalt/src/Build.kt | 63 ++++++ kobalt/wrapper/kobalt-wrapper.jar | Bin 0 -> 9230 bytes kobalt/wrapper/kobalt-wrapper.properties | 1 + kobaltw | 2 + kobaltw.bat | 4 + .../plugin/versioneye/VersionEyePlugin.kt | 197 ++++++++++++++++++ src/main/resources/META-INF/kobalt-plugin.xml | 6 + 25 files changed, 635 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/kobalt.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 example/kobalt/src/Build.kt create mode 100644 example/kobalt/wrapper/kobalt-wrapper.jar create mode 100644 example/kobalt/wrapper/kobalt-wrapper.properties create mode 100644 example/kobaltw create mode 100644 example/kobaltw.bat create mode 100644 example/src/main/kotlin/com/example/Main.kt create mode 100644 example/src/test/kotlin/com/example/MainTest.kt create mode 100644 kobalt-versioneye.iml create mode 100644 kobalt/Build.kt.iml create mode 100644 kobalt/src/Build.kt create mode 100644 kobalt/wrapper/kobalt-wrapper.jar create mode 100644 kobalt/wrapper/kobalt-wrapper.properties create mode 100644 kobaltw create mode 100644 kobaltw.bat create mode 100644 src/main/kotlin/net/thauvin/erik/kobalt/plugin/versioneye/VersionEyePlugin.kt create mode 100644 src/main/resources/META-INF/kobalt-plugin.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..80a944b --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +**/.idea/dictionaries +**/.idea/gradle.xml +**/.idea/libraries +**/.idea/tasks.xml +**/.idea/workspace.xml +*.iws +.DS_Store +.classpath +.gradle +.kobalt +.nb-gradle +.project +.settings +/bin +/build +/deploy +/dist +/example/libs +/gen +/gradle.properties +/out +/proguard-project.txt +/project.properties +/target +/test-output +Thumbs.db +ehthumbs.db +kobaltBuild +local.properties diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..a852314 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..8ff795e --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,53 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..3b31283 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/kobalt.xml b/.idea/kobalt.xml new file mode 100644 index 0000000..999c7b6 --- /dev/null +++ b/.idea/kobalt.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e50b779 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Android Lint + + + Java + + + Portability issuesJava + + + + + + + + + + + + + + + + + + + + + + + 1.8.x + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6b87c48 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/kobalt/src/Build.kt b/example/kobalt/src/Build.kt new file mode 100644 index 0000000..7eede88 --- /dev/null +++ b/example/kobalt/src/Build.kt @@ -0,0 +1,48 @@ +import com.beust.kobalt.* +import com.beust.kobalt.plugin.packaging.* +import com.beust.kobalt.plugin.application.* +import com.beust.kobalt.plugin.kotlin.* +import net.thauvin.erik.kobalt.plugin.versioneye.* + +val repos = repos() + +val pl = plugins(file("../kobaltBuild/libs/kobalt-versioneye-0.4.0-beta.jar")) +//val pl = plugins("net.thauvin.erik:kobalt-maven-local:0.5.0") + +val p = project { + + name = "example" + group = "com.example" + artifactId = name + version = "0.1" + + sourceDirectories { + path("src/main/kotlin") + } + + sourceDirectoriesTest { + path("src/test/kotlin") + } + + dependencies { +// compile("com.beust:jcommander:1.48") + } + + dependenciesTest { + compile("org.testng:testng:") + + } + + assemble { + jar { + } + } + + application { + mainClass = "com.example.MainKt" + } + + versionEye { + //baseUrl = "" + } +} diff --git a/example/kobalt/wrapper/kobalt-wrapper.jar b/example/kobalt/wrapper/kobalt-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4889dbd7432e7092837c78c1a36bbd2f382cef6 GIT binary patch literal 9230 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 = println("\n\nHello Kotlin world from Kobalt\n\n") \ No newline at end of file diff --git a/example/src/test/kotlin/com/example/MainTest.kt b/example/src/test/kotlin/com/example/MainTest.kt new file mode 100644 index 0000000..96458e9 --- /dev/null +++ b/example/src/test/kotlin/com/example/MainTest.kt @@ -0,0 +1,8 @@ +package com.example + +import org.testng.annotations.Test + +class ExampleTest { + @Test + fun f() = println("Running test") +} \ No newline at end of file diff --git a/kobalt-versioneye.iml b/kobalt-versioneye.iml new file mode 100644 index 0000000..998bba4 --- /dev/null +++ b/kobalt-versioneye.iml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kobalt/Build.kt.iml b/kobalt/Build.kt.iml new file mode 100644 index 0000000..a5b227c --- /dev/null +++ b/kobalt/Build.kt.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/kobalt/src/Build.kt b/kobalt/src/Build.kt new file mode 100644 index 0000000..9fef7c2 --- /dev/null +++ b/kobalt/src/Build.kt @@ -0,0 +1,63 @@ +import com.beust.kobalt.plugin.packaging.assemble +import com.beust.kobalt.plugin.publish.bintray +import com.beust.kobalt.project +import com.beust.kobalt.repos +import org.apache.maven.model.Developer +import org.apache.maven.model.License +import org.apache.maven.model.Model +import org.apache.maven.model.Scm + +val repos = repos() + + +val p = project { + + name = "kobalt-versioneye" + group = "net.thauvin.erik" + artifactId = name + version = "0.4.0-beta" + + pom = Model().apply { + description = "VersionEye plug-in for the Kobalt build system." + url = "https://github.com/ethauvin/kobalt-versioneye" + licenses = listOf(License().apply { + name = "BSD 3-Clause" + url = "https://opensource.org/licenses/BSD-3-Clause" + }) + scm = Scm().apply { + url = "https://github.com/ethauvin/kobalt-versioneye" + connection = "https://github.com/ethauvin/kobalt-versioneye.git" + developerConnection = "git@github.com:ethauvin/kobalt-versioneye.git" + } + developers = listOf(Developer().apply { + id = "ethauvin" + name = "Erik C. Thauvin" + email = "erik@thauvin.net" + }) + } + + sourceDirectories { + path("src/main/kotlin") + } + + sourceDirectoriesTest { + path("src/test/kotlin") + } + + dependencies { + compile("com.beust:kobalt-plugin-api:0.863") + } + + dependenciesTest { + compile("org.testng:testng:") + + } + + assemble { + mavenJars {} + } + + bintray { + publish = true + } +} diff --git a/kobalt/wrapper/kobalt-wrapper.jar b/kobalt/wrapper/kobalt-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4889dbd7432e7092837c78c1a36bbd2f382cef6 GIT binary patch literal 9230 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, + val taskContributor: TaskContributor) : + BasePlugin(), ITaskContributor, IConfigActor by configActor { + private val debug = true + private val API_KEY_PROPERTY = "versioneye.apiKey" + private val PROJECT_KEY_PROPERTY = "versioneye.projectKey" + private val PROJECT_ID_PROPERTY = "versioneye.projectId" + private val ORG_PROPERTY = "versioneye.organisation" + private val TEAM_PROPERTY = "versioneye.team" + private val httpClient = OkHttpClient() + + // ITaskContributor + override fun tasksFor(project: Project, context: KobaltContext): List = taskContributor.dynamicTasks + + companion object { + const val NAME: String = "VersionEye" + } + + override val name = NAME + + override fun apply(project: Project, context: KobaltContext) { + super.apply(project, context) + taskContributor.addVariantTasks(this, project, context, "versionEye", group = "publish", + runTask = { versionEye(project) }) + } + + @Task(name = "versionEye", description = "Update and check dependencies on VersionEye") + fun versionEye(project: Project): TaskResult { + + if (debug) { + System.setProperty("http.proxyHost", "127.0.0.1") + System.setProperty("https.proxyHost", "127.0.0.1") + System.setProperty("http.proxyPort", "8888"); + System.setProperty("https.proxyPort", "8888") + } + + val local = project.directory + "/local.properties" + + configurationFor(project)?.let { config -> + if (config.baseUrl.isBlank()) { + warn("Please specify a valid VersionEye base URL.") + return TaskResult() + } else { + var apiKey = System.getProperty(API_KEY_PROPERTY) + val p = Properties() + Paths.get(local).let { path -> + if (path.toFile().exists()) { + Files.newInputStream(path).use { + p.load(it) + } + } + } + + + if (apiKey.isNullOrBlank()) { + apiKey = p.getProperty(API_KEY_PROPERTY) + if (apiKey.isNullOrBlank()) { + warn("Please provide a valid VersionEye API key.") + return TaskResult() + } + } + p.setProperty(API_KEY_PROPERTY, apiKey) + + val result = versionEyeUpdate(if (config.name.isNotBlank()) { + config.name + } else { + project.name + }, config, p) + + FileOutputStream(local).use { output -> + p.store(output, "") + } + + return result + } + } + return TaskResult() + } + + private fun versionEyeUpdate(name: String, config: VersionEyeConfig, p: Properties): TaskResult { + val projectId = p.getProperty(PROJECT_ID_PROPERTY) + val apiKey = p.getProperty(API_KEY_PROPERTY); + val endPoint = if (projectId.isNullOrBlank()) { + "api/v2/projects" + } else { + "api/v2/project/$projectId" + } + + val file = File("../kobaltBuild/libs/kobalt-versioneye-0.4.0-beta.pom") + val requestBody = MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("name", name) + .addFormDataPart("upload", file.name, RequestBody.create(MediaType.parse("application/octet-stream"), file)) + + if (config.organisation.isNotBlank()) { + requestBody.addFormDataPart("orga_name", config.organisation) + } + + if (config.team.isNotBlank()) { + requestBody.addFormDataPart("team_name", config.team) + } + + // @TODO remove + requestBody.addFormDataPart("temp", "true") + + val url = HttpUrl.parse(config.baseUrl).newBuilder() + .addPathSegments(endPoint) + .setQueryParameter("api_key", apiKey) + .build() + val request = Request.Builder() + .url(url) + .post(requestBody.build()) + .build() + + val response = httpClient.newCall(request).execute() + if (!response.isSuccessful) { + warn("Unexpected response from VersionEye: " + response) + return TaskResult() + } else { + val builder = GsonBuilder() + val o = builder.create().fromJson(response.body().charStream(), JsonObject::class.java) + println(o) + } + return TaskResult() + } +} + +@Directive +class VersionEyeConfig() { + var baseUrl = "https://www.versioneye.com/" + var failOnUnknownLicense = false; + var licenseCheck = false; + var name = ""; + var organisation = ""; + var securityCheck = false; + var team = ""; + var visibility = true; +} + +@Directive +fun Project.versionEye(init: VersionEyeConfig.() -> Unit) { + VersionEyeConfig().let { config -> + config.init() + (Plugins.findPlugin(VersionEyePlugin.NAME) as VersionEyePlugin).addConfiguration(this, config) + } +} diff --git a/src/main/resources/META-INF/kobalt-plugin.xml b/src/main/resources/META-INF/kobalt-plugin.xml new file mode 100644 index 0000000..cb9f88d --- /dev/null +++ b/src/main/resources/META-INF/kobalt-plugin.xml @@ -0,0 +1,6 @@ + + VersionEye + + net.thauvin.erik.kobalt.plugin.versioneye.VersionEyePlugin + + \ No newline at end of file