1
0
mirror of https://github.com/AllanWang/Frost-for-Facebook.git synced 2024-11-08 20:12:39 +01:00

Remove custom extensions and use plugin as is

This commit is contained in:
Allan Wang 2019-07-03 00:06:02 -07:00
parent 93d2d28af6
commit 33274faf9b
No known key found for this signature in database
GPG Key ID: C93E3F9C679D7A56
6 changed files with 36 additions and 138 deletions

View File

@ -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()

View File

@ -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
}
}
},

View File

@ -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"

View File

@ -33,5 +33,4 @@ gradlePlugin {
dependencies {
implementation("ca.allanwang.kau:gradle-plugin:$kau")
implementation("com.moowork.gradle:gradle-node-plugin:1.3.1")
}

View File

@ -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<Project> {
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
}
}

View File

@ -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()
)
}
}