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:
parent
93d2d28af6
commit
33274faf9b
@ -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()
|
||||
|
41
app/src/web/package-lock.json
generated
41
app/src/web/package-lock.json
generated
@ -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
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -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"
|
||||
|
@ -33,5 +33,4 @@ gradlePlugin {
|
||||
|
||||
dependencies {
|
||||
implementation("ca.allanwang.kau:gradle-plugin:$kau")
|
||||
implementation("com.moowork.gradle:gradle-node-plugin:1.3.1")
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user