From 8f4da4ea838c52d857a12398967da2a99967a14e Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Tue, 2 Jul 2019 19:59:59 -0700 Subject: Sample gradle npm test --- buildSrc/build.gradle.kts | 27 ++++++++++- buildSrc/src/main/kotlin/FrostPlugin.kt | 38 ++++++++++++++++ buildSrc/src/main/kotlin/Versions.kt | 2 + buildSrc/src/main/kotlin/WebGenInstallTask.groovy | 55 +++++++++++++++++++++++ 4 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 buildSrc/src/main/kotlin/FrostPlugin.kt create mode 100644 buildSrc/src/main/kotlin/WebGenInstallTask.groovy (limited to 'buildSrc') diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 0c518118..aded2979 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,5 +1,9 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + plugins { `kotlin-dsl` + groovy + idea } group = "com.pitchedapps" @@ -12,13 +16,32 @@ repositories { // Currently can't read properties from root project // Reading it manually since it's simple val rootProps = - File(project.rootDir.let { if (it.name == "buildSrc") it.parent else it.absolutePath }, "gradle.properties") + File( + project.rootDir.let { if (it.name == "buildSrc") it.parent else it.absolutePath }, + "gradle.properties" + ) val kau = rootProps.useLines { it.first { s -> s.startsWith("KAU=") } }.substring(4).trim() println("Using kau $kau") +sourceSets { + main { + withConvention(GroovySourceSet::class) { + groovy.srcDir("src/main/groovy") + } + } +} + dependencies { implementation("ca.allanwang.kau:gradle-plugin:$kau") -} \ No newline at end of file + implementation("com.moowork.gradle:gradle-node-plugin:1.3.1") +} + +val compileGroovy = tasks.withType().first() +val compileKotlin = tasks.withType().first() + +compileGroovy.dependsOn.remove(compileKotlin) +compileKotlin.dependsOn(compileGroovy) +compileKotlin.classpath += files(compileGroovy.destinationDir) diff --git a/buildSrc/src/main/kotlin/FrostPlugin.kt b/buildSrc/src/main/kotlin/FrostPlugin.kt new file mode 100644 index 00000000..8e640f04 --- /dev/null +++ b/buildSrc/src/main/kotlin/FrostPlugin.kt @@ -0,0 +1,38 @@ +import com.moowork.gradle.node.NodeExtension +import com.moowork.gradle.node.NodePlugin +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.apply +import org.gradle.kotlin.dsl.create + +class FrostPlugin : Plugin { + + companion object { + private const val NODE_VERSION = "12.4.0" + } + + override fun apply(project: Project) { + project.plugins.withId("java-base") { + project.applyWebGenPlugin() + } + project.gradle.taskGraph.whenReady { + if (!project.plugins.hasPlugin("java-base")) { + throw IllegalArgumentException( + "Frost plugin can't be applied without Android or Java or Kotlin plugin." + ) + } + } + } + + private fun Project.applyWebGenPlugin() { + setupNode() +// tasks.create(WebGenInstallTask.NAME, WebGenInstallTask::class) + } + + private fun Project.setupNode() { + plugins.apply(NodePlugin::class) + val nodeConfig = extensions.findByName("node") as NodeExtension + nodeConfig.download = true + nodeConfig.version = NODE_VERSION + } +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 7eaa9a4a..5d93dbfa 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -34,4 +34,6 @@ object Versions { const val scaleImageView = "3.10.0" // https://github.com/umano/AndroidSlidingUpPanel#importing-the-library const val slidingPanel = "3.4.0" + // https://github.com/srs/gradle-node-plugin/releases + const val nodeGradle = "1.3.1" } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/WebGenInstallTask.groovy b/buildSrc/src/main/kotlin/WebGenInstallTask.groovy new file mode 100644 index 00000000..a70effee --- /dev/null +++ b/buildSrc/src/main/kotlin/WebGenInstallTask.groovy @@ -0,0 +1,55 @@ +import com.moowork.gradle.node.npm.NpmTask +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.model.ObjectFactory +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.OutputFile + +/** + * Based on https://github.com/apollographql/apollo-android/blob/master/apollo-gradle-plugin/src/main/groovy/com/apollographql/apollo/gradle/ApolloCodegenInstallTask.groovy + */ +class WebGenInstallTask extends NpmTask { + + static final String TAG = "frost-web-gen" + public static final String NAME = "installWebGen" + static final String INSTALLATION_PATH = TAG + File.separator + "node_modules" + static final String PACKAGE_FILE_PATH = TAG + File.separator + "package.json" + + static final String TYPESCRIPT_VERSION = "3.3.1" + static final String SASS_VERSION = "1.19.0" + + @OutputDirectory + final DirectoryProperty installDir = ObjectFactory.directoryProperty() + @OutputFile + final RegularFileProperty packageFile = ObjectFactory.fileProperty() + + WebGenInstallTask() { + setGroup("frost") + setDescription("Runs npm install for $TAG") + installDir.set(project.file(new File(project.buildDir, INSTALLATION_PATH))) + packageFile.set(project.file(new File(project.buildDir, PACKAGE_FILE_PATH))) + } + + @Override + void exec() { + installDir.get().getAsFile().deleteDir() + writePackageFile(packageFile.get().getAsFile()) + + setArgs(Lists.newArrayList("install", "typescript@" + TYPESCRIPT_VERSION, "sass@" + SASS_VERSION, "--save", "--save-exact")) + getLogging().captureStandardOutput(LogLevel.INFO) + + super.exec() + } + + /** + * Generates a dummy package.json file to silence npm warnings + */ + private static void writePackageFile(File apolloPackageFile) { + apolloPackageFile.write( + '''{ + "name": "frost-web-gen" +} +''' + ) + } +} \ No newline at end of file -- cgit v1.2.3 From 5a107bcb768fa1e7fb110ba65e22e49b3b004eed Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Tue, 2 Jul 2019 23:22:11 -0700 Subject: Convert install task to kotlin using delegation --- buildSrc/build.gradle.kts | 30 +++++----- buildSrc/src/main/kotlin/FrostPlugin.kt | 6 +- buildSrc/src/main/kotlin/WebGenInstallTask.groovy | 55 ------------------ buildSrc/src/main/kotlin/WebGenInstallTask.kt | 68 +++++++++++++++++++++++ 4 files changed, 85 insertions(+), 74 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/WebGenInstallTask.groovy create mode 100644 buildSrc/src/main/kotlin/WebGenInstallTask.kt (limited to 'buildSrc') diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index aded2979..efb7a7dd 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -2,8 +2,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { `kotlin-dsl` - groovy - idea +// groovy +// idea } group = "com.pitchedapps" @@ -26,22 +26,22 @@ val kau = rootProps.useLines { println("Using kau $kau") -sourceSets { - main { - withConvention(GroovySourceSet::class) { - groovy.srcDir("src/main/groovy") - } - } -} +//sourceSets { +// main { +// withConvention(GroovySourceSet::class) { +// groovy.srcDir("src/main/groovy") +// } +// } +//} dependencies { implementation("ca.allanwang.kau:gradle-plugin:$kau") implementation("com.moowork.gradle:gradle-node-plugin:1.3.1") } -val compileGroovy = tasks.withType().first() -val compileKotlin = tasks.withType().first() - -compileGroovy.dependsOn.remove(compileKotlin) -compileKotlin.dependsOn(compileGroovy) -compileKotlin.classpath += files(compileGroovy.destinationDir) +//val compileGroovy = tasks.withType().first() +//val compileKotlin = tasks.withType().first() +// +//compileGroovy.dependsOn.remove(compileKotlin) +//compileKotlin.dependsOn(compileGroovy) +//compileKotlin.classpath += files(compileGroovy.destinationDir) diff --git a/buildSrc/src/main/kotlin/FrostPlugin.kt b/buildSrc/src/main/kotlin/FrostPlugin.kt index 8e640f04..0fd4ea9d 100644 --- a/buildSrc/src/main/kotlin/FrostPlugin.kt +++ b/buildSrc/src/main/kotlin/FrostPlugin.kt @@ -17,16 +17,14 @@ class FrostPlugin : Plugin { } project.gradle.taskGraph.whenReady { if (!project.plugins.hasPlugin("java-base")) { - throw IllegalArgumentException( - "Frost plugin can't be applied without Android or Java or Kotlin plugin." - ) + throw IllegalArgumentException("Frost plugin can't be applied without Android or Java or Kotlin plugin.") } } } private fun Project.applyWebGenPlugin() { setupNode() -// tasks.create(WebGenInstallTask.NAME, WebGenInstallTask::class) + tasks.create(WebGenInstallTask.NAME, WebGenInstallTask::class) } private fun Project.setupNode() { diff --git a/buildSrc/src/main/kotlin/WebGenInstallTask.groovy b/buildSrc/src/main/kotlin/WebGenInstallTask.groovy deleted file mode 100644 index a70effee..00000000 --- a/buildSrc/src/main/kotlin/WebGenInstallTask.groovy +++ /dev/null @@ -1,55 +0,0 @@ -import com.moowork.gradle.node.npm.NpmTask -import org.gradle.api.file.DirectoryProperty -import org.gradle.api.file.RegularFileProperty -import org.gradle.api.model.ObjectFactory -import org.gradle.api.tasks.OutputDirectory -import org.gradle.api.tasks.OutputFile - -/** - * Based on https://github.com/apollographql/apollo-android/blob/master/apollo-gradle-plugin/src/main/groovy/com/apollographql/apollo/gradle/ApolloCodegenInstallTask.groovy - */ -class WebGenInstallTask extends NpmTask { - - static final String TAG = "frost-web-gen" - public static final String NAME = "installWebGen" - static final String INSTALLATION_PATH = TAG + File.separator + "node_modules" - static final String PACKAGE_FILE_PATH = TAG + File.separator + "package.json" - - static final String TYPESCRIPT_VERSION = "3.3.1" - static final String SASS_VERSION = "1.19.0" - - @OutputDirectory - final DirectoryProperty installDir = ObjectFactory.directoryProperty() - @OutputFile - final RegularFileProperty packageFile = ObjectFactory.fileProperty() - - WebGenInstallTask() { - setGroup("frost") - setDescription("Runs npm install for $TAG") - installDir.set(project.file(new File(project.buildDir, INSTALLATION_PATH))) - packageFile.set(project.file(new File(project.buildDir, PACKAGE_FILE_PATH))) - } - - @Override - void exec() { - installDir.get().getAsFile().deleteDir() - writePackageFile(packageFile.get().getAsFile()) - - setArgs(Lists.newArrayList("install", "typescript@" + TYPESCRIPT_VERSION, "sass@" + SASS_VERSION, "--save", "--save-exact")) - getLogging().captureStandardOutput(LogLevel.INFO) - - super.exec() - } - - /** - * Generates a dummy package.json file to silence npm warnings - */ - private static void writePackageFile(File apolloPackageFile) { - apolloPackageFile.write( - '''{ - "name": "frost-web-gen" -} -''' - ) - } -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/WebGenInstallTask.kt b/buildSrc/src/main/kotlin/WebGenInstallTask.kt new file mode 100644 index 00000000..2076ee84 --- /dev/null +++ b/buildSrc/src/main/kotlin/WebGenInstallTask.kt @@ -0,0 +1,68 @@ +import com.moowork.gradle.node.npm.NpmTask +import org.gradle.api.DefaultTask +import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.OutputFile +import org.gradle.api.tasks.TaskAction +import java.io.File + +/** + * Based on https://github.com/apollographql/apollo-android/blob/master/apollo-gradle-plugin/src/main/groovy/com/apollographql/apollo/gradle/ApolloCodegenInstallTask.groovy + */ +class WebGenInstallTask : DefaultTask() { + + companion object { + const val TAG = "frost-web-gen" + const val NAME = "installWebGen" + val INSTALLATION_PATH = TAG + File.separator + "node_modules" + val PACKAGE_FILE_PATH = TAG + File.separator + "package.json" + + const val TYPESCRIPT_VERSION = "3.3.1" + const val SASS_VERSION = "1.19.0" + } + + @OutputDirectory + val installDir = project.layout.directoryProperty() + @OutputFile + val packageFile = project.layout.fileProperty() + + val npmTask = NpmTask() + + init { + group = "frost" + description = "Runs npm install for $TAG" + + installDir.set(project.file(File(project.buildDir, INSTALLATION_PATH))) + packageFile.set(project.file(File(project.buildDir, PACKAGE_FILE_PATH))) + + npmTask.setWorkingDir(File(project.buildDir, TAG)) + } + + @TaskAction + fun exec() { + installDir.get().asFile.takeIf { it.isDirectory }?.deleteRecursively() + writePackageFile(packageFile.get().asFile) + npmTask.setArgs( + listOf( + "install", + "typescript@$TYPESCRIPT_VERSION", + "sass@$SASS_VERSION", + "--save", + "--save-exact" + ) + ) + npmTask.logging.captureStandardOutput(LogLevel.INFO) + npmTask.exec() + } + + private fun writePackageFile(packageFile: File) { + packageFile.writeText( + """ + { + "name": "$TAG", + "version": "1.0" + } + """.trimIndent() + ) + } +} \ No newline at end of file -- cgit v1.2.3 From 16e575ee54575b8c3e89465609221b62ab5f0eca Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Tue, 2 Jul 2019 23:24:22 -0700 Subject: Remove groovy stuff from build gradle --- buildSrc/build.gradle.kts | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) (limited to 'buildSrc') diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index efb7a7dd..4397bae9 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,9 +1,5 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { `kotlin-dsl` -// groovy -// idea } group = "com.pitchedapps" @@ -26,22 +22,7 @@ val kau = rootProps.useLines { println("Using kau $kau") -//sourceSets { -// main { -// withConvention(GroovySourceSet::class) { -// groovy.srcDir("src/main/groovy") -// } -// } -//} - dependencies { implementation("ca.allanwang.kau:gradle-plugin:$kau") implementation("com.moowork.gradle:gradle-node-plugin:1.3.1") -} - -//val compileGroovy = tasks.withType().first() -//val compileKotlin = tasks.withType().first() -// -//compileGroovy.dependsOn.remove(compileKotlin) -//compileKotlin.dependsOn(compileGroovy) -//compileKotlin.classpath += files(compileGroovy.destinationDir) +} \ No newline at end of file -- cgit v1.2.3 From 93d2d28af68c932e1bdd931fcb4a62943c45e14d Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Tue, 2 Jul 2019 23:43:05 -0700 Subject: Test install task --- app/build.gradle | 1 + buildSrc/build.gradle.kts | 9 +++++++++ buildSrc/src/main/kotlin/FrostPlugin.kt | 1 + buildSrc/src/main/kotlin/WebGenInstallTask.kt | 5 +++-- 4 files changed, 14 insertions(+), 2 deletions(-) (limited to 'buildSrc') diff --git a/app/build.gradle b/app/build.gradle index 4efd7930..0f5188b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,6 +5,7 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' apply plugin: 'com.getkeepsafe.dexcount' apply plugin: 'com.gladed.androidgitversion' +apply plugin: FrostPlugin apply from: '../spotless.gradle' group = APP_GROUP diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 4397bae9..d9ff7951 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -22,6 +22,15 @@ val kau = rootProps.useLines { println("Using kau $kau") +gradlePlugin { + plugins { + register("frost-web-gen") { + id = "frost" + implementationClass = "FrostPlugin" + } + } +} + dependencies { implementation("ca.allanwang.kau:gradle-plugin:$kau") implementation("com.moowork.gradle:gradle-node-plugin:1.3.1") diff --git a/buildSrc/src/main/kotlin/FrostPlugin.kt b/buildSrc/src/main/kotlin/FrostPlugin.kt index 0fd4ea9d..7b5075f8 100644 --- a/buildSrc/src/main/kotlin/FrostPlugin.kt +++ b/buildSrc/src/main/kotlin/FrostPlugin.kt @@ -12,6 +12,7 @@ class FrostPlugin : Plugin { } override fun apply(project: Project) { + println("Applying Frost Plugin") project.plugins.withId("java-base") { project.applyWebGenPlugin() } diff --git a/buildSrc/src/main/kotlin/WebGenInstallTask.kt b/buildSrc/src/main/kotlin/WebGenInstallTask.kt index 2076ee84..a185a7f0 100644 --- a/buildSrc/src/main/kotlin/WebGenInstallTask.kt +++ b/buildSrc/src/main/kotlin/WebGenInstallTask.kt @@ -1,6 +1,7 @@ import com.moowork.gradle.node.npm.NpmTask import org.gradle.api.DefaultTask import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction @@ -9,7 +10,8 @@ import java.io.File /** * Based on https://github.com/apollographql/apollo-android/blob/master/apollo-gradle-plugin/src/main/groovy/com/apollographql/apollo/gradle/ApolloCodegenInstallTask.groovy */ -class WebGenInstallTask : DefaultTask() { +@CacheableTask +open class WebGenInstallTask : DefaultTask() { companion object { const val TAG = "frost-web-gen" @@ -34,7 +36,6 @@ class WebGenInstallTask : DefaultTask() { installDir.set(project.file(File(project.buildDir, INSTALLATION_PATH))) packageFile.set(project.file(File(project.buildDir, PACKAGE_FILE_PATH))) - npmTask.setWorkingDir(File(project.buildDir, TAG)) } -- cgit v1.2.3 From 33274faf9bb68eb95cb3e2e095cd0cef84aa6fd7 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Wed, 3 Jul 2019 00:06:02 -0700 Subject: Remove custom extensions and use plugin as is --- app/build.gradle | 22 ++++++++- app/src/web/package-lock.json | 41 +++++----------- app/src/web/package.json | 4 ++ buildSrc/build.gradle.kts | 1 - buildSrc/src/main/kotlin/FrostPlugin.kt | 37 -------------- buildSrc/src/main/kotlin/WebGenInstallTask.kt | 69 --------------------------- 6 files changed, 36 insertions(+), 138 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/FrostPlugin.kt delete mode 100644 buildSrc/src/main/kotlin/WebGenInstallTask.kt (limited to 'buildSrc') diff --git a/app/build.gradle b/app/build.gradle index 0f5188b7..b286a754 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,18 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' apply plugin: 'com.getkeepsafe.dexcount' apply plugin: 'com.gladed.androidgitversion' -apply plugin: FrostPlugin + + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath "com.moowork.gradle:gradle-node-plugin:${Versions.nodeGradle}" + } +} + +apply plugin: com.moowork.gradle.node.NodePlugin apply from: '../spotless.gradle' group = APP_GROUP @@ -168,6 +179,15 @@ android { } +node { + download = true + nodeModulesDir = file("${project.projectDir}/src/web") +} + +task frostWebGen(type: NpmTask) { + args = ['run', 'compile'] +} + repositories { google() jcenter() diff --git a/app/src/web/package-lock.json b/app/src/web/package-lock.json index 8c7e9b78..1c7a7931 100644 --- a/app/src/web/package-lock.json +++ b/app/src/web/package-lock.json @@ -429,8 +429,7 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "optional": true + "bundled": true }, "aproba": { "version": "1.2.0", @@ -448,13 +447,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -467,18 +464,15 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -581,8 +575,7 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -592,7 +585,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -605,20 +597,17 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.3.5", "bundled": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -635,7 +624,6 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -708,8 +696,7 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -719,7 +706,6 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { "wrappy": "1" } @@ -795,8 +781,7 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, - "optional": true + "bundled": true }, "safer-buffer": { "version": "2.1.2", @@ -826,7 +811,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -844,7 +828,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -883,13 +866,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "yallist": { "version": "3.0.3", - "bundled": true, - "optional": true + "bundled": true } } }, diff --git a/app/src/web/package.json b/app/src/web/package.json index fbdc2442..ef323afb 100644 --- a/app/src/web/package.json +++ b/app/src/web/package.json @@ -2,6 +2,10 @@ "scripts": { "compile": "tsc -p tsconfig.json && sass --no-source-map --style compressed --update scss:assets/css" }, + "license": "GPL-3.0", + "repository": { + "url": "https://github.com/AllanWang/Frost-for-Facebook" + }, "dependencies": { "typescript": "^3.3.1", "sass": "^1.19.0" diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index d9ff7951..3afa0486 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -33,5 +33,4 @@ gradlePlugin { dependencies { implementation("ca.allanwang.kau:gradle-plugin:$kau") - implementation("com.moowork.gradle:gradle-node-plugin:1.3.1") } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/FrostPlugin.kt b/buildSrc/src/main/kotlin/FrostPlugin.kt deleted file mode 100644 index 7b5075f8..00000000 --- a/buildSrc/src/main/kotlin/FrostPlugin.kt +++ /dev/null @@ -1,37 +0,0 @@ -import com.moowork.gradle.node.NodeExtension -import com.moowork.gradle.node.NodePlugin -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.apply -import org.gradle.kotlin.dsl.create - -class FrostPlugin : Plugin { - - companion object { - private const val NODE_VERSION = "12.4.0" - } - - override fun apply(project: Project) { - println("Applying Frost Plugin") - project.plugins.withId("java-base") { - project.applyWebGenPlugin() - } - project.gradle.taskGraph.whenReady { - if (!project.plugins.hasPlugin("java-base")) { - throw IllegalArgumentException("Frost plugin can't be applied without Android or Java or Kotlin plugin.") - } - } - } - - private fun Project.applyWebGenPlugin() { - setupNode() - tasks.create(WebGenInstallTask.NAME, WebGenInstallTask::class) - } - - private fun Project.setupNode() { - plugins.apply(NodePlugin::class) - val nodeConfig = extensions.findByName("node") as NodeExtension - nodeConfig.download = true - nodeConfig.version = NODE_VERSION - } -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/WebGenInstallTask.kt b/buildSrc/src/main/kotlin/WebGenInstallTask.kt deleted file mode 100644 index a185a7f0..00000000 --- a/buildSrc/src/main/kotlin/WebGenInstallTask.kt +++ /dev/null @@ -1,69 +0,0 @@ -import com.moowork.gradle.node.npm.NpmTask -import org.gradle.api.DefaultTask -import org.gradle.api.logging.LogLevel -import org.gradle.api.tasks.CacheableTask -import org.gradle.api.tasks.OutputDirectory -import org.gradle.api.tasks.OutputFile -import org.gradle.api.tasks.TaskAction -import java.io.File - -/** - * Based on https://github.com/apollographql/apollo-android/blob/master/apollo-gradle-plugin/src/main/groovy/com/apollographql/apollo/gradle/ApolloCodegenInstallTask.groovy - */ -@CacheableTask -open class WebGenInstallTask : DefaultTask() { - - companion object { - const val TAG = "frost-web-gen" - const val NAME = "installWebGen" - val INSTALLATION_PATH = TAG + File.separator + "node_modules" - val PACKAGE_FILE_PATH = TAG + File.separator + "package.json" - - const val TYPESCRIPT_VERSION = "3.3.1" - const val SASS_VERSION = "1.19.0" - } - - @OutputDirectory - val installDir = project.layout.directoryProperty() - @OutputFile - val packageFile = project.layout.fileProperty() - - val npmTask = NpmTask() - - init { - group = "frost" - description = "Runs npm install for $TAG" - - installDir.set(project.file(File(project.buildDir, INSTALLATION_PATH))) - packageFile.set(project.file(File(project.buildDir, PACKAGE_FILE_PATH))) - npmTask.setWorkingDir(File(project.buildDir, TAG)) - } - - @TaskAction - fun exec() { - installDir.get().asFile.takeIf { it.isDirectory }?.deleteRecursively() - writePackageFile(packageFile.get().asFile) - npmTask.setArgs( - listOf( - "install", - "typescript@$TYPESCRIPT_VERSION", - "sass@$SASS_VERSION", - "--save", - "--save-exact" - ) - ) - npmTask.logging.captureStandardOutput(LogLevel.INFO) - npmTask.exec() - } - - private fun writePackageFile(packageFile: File) { - packageFile.writeText( - """ - { - "name": "$TAG", - "version": "1.0" - } - """.trimIndent() - ) - } -} \ No newline at end of file -- cgit v1.2.3 From 4db64e061fb37e4ed9a6fc6ebecded0191eb2c21 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Wed, 3 Jul 2019 00:16:49 -0700 Subject: Remove gradle plugin declaration --- buildSrc/build.gradle.kts | 9 --------- 1 file changed, 9 deletions(-) (limited to 'buildSrc') diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 3afa0486..38f9cd13 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -22,15 +22,6 @@ val kau = rootProps.useLines { println("Using kau $kau") -gradlePlugin { - plugins { - register("frost-web-gen") { - id = "frost" - implementationClass = "FrostPlugin" - } - } -} - dependencies { implementation("ca.allanwang.kau:gradle-plugin:$kau") } \ No newline at end of file -- cgit v1.2.3 From 23295a5376aaf297487a352a1f3ddfe17f73691c Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Wed, 3 Jul 2019 00:23:24 -0700 Subject: Only print kau if is root --- buildSrc/build.gradle.kts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'buildSrc') diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 38f9cd13..2f2f5d15 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -9,18 +9,28 @@ repositories { maven("https://jitpack.io") } +var isRoot = false // Currently can't read properties from root project // Reading it manually since it's simple val rootProps = File( - project.rootDir.let { if (it.name == "buildSrc") it.parent else it.absolutePath }, + project.rootDir.let { + if (it.name == "buildSrc") { + it.parent + } else { + isRoot = true + it.absolutePath + } + }, "gradle.properties" ) val kau = rootProps.useLines { it.first { s -> s.startsWith("KAU=") } }.substring(4).trim() -println("Using kau $kau") +if (isRoot) { + println("Using kau $kau") +} dependencies { implementation("ca.allanwang.kau:gradle-plugin:$kau") -- cgit v1.2.3