more re-organisation to new name
This commit is contained in:
parent
633e898f3c
commit
8c75b47a96
37 changed files with 219 additions and 197 deletions
|
|
@ -1,19 +0,0 @@
|
||||||
package dev.adamko.factoriowebmap.archetype
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlugin
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
id("com.github.node-gradle.node")
|
|
||||||
id("dev.adamko.factoriowebmap.archetype.base")
|
|
||||||
}
|
|
||||||
|
|
||||||
node {
|
|
||||||
download.set(true)
|
|
||||||
version.set("14.18.0")
|
|
||||||
|
|
||||||
distBaseUrl.set(null as String?) // set by dependencyResolutionManagement
|
|
||||||
}
|
|
||||||
|
|
||||||
project.plugins.withType<KotlinJsPlugin>()
|
|
||||||
project.plugins.withType<KotlinMultiplatformPlugin>()
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
package dev.adamko.factoriowebmap.configurations
|
|
||||||
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
|
||||||
import org.gradle.api.attributes.AttributeContainer
|
|
||||||
import org.gradle.api.attributes.Bundling
|
|
||||||
import org.gradle.api.attributes.Category
|
|
||||||
import org.gradle.api.attributes.LibraryElements
|
|
||||||
import org.gradle.api.attributes.Usage
|
|
||||||
import org.gradle.api.model.ObjectFactory
|
|
||||||
import org.gradle.kotlin.dsl.named
|
|
||||||
|
|
||||||
fun Configuration.factorioModAttributes(objects: ObjectFactory) =
|
|
||||||
attributes { factorioMod(objects) }
|
|
||||||
|
|
||||||
fun AttributeContainer.factorioMod(objects: ObjectFactory) {
|
|
||||||
attribute(Usage.USAGE_ATTRIBUTE, objects.named("factorio"))
|
|
||||||
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
|
|
||||||
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.CLASSES_AND_RESOURCES))
|
|
||||||
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EMBEDDED))
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
package dev.adamko.factoriowebmap.configurations
|
|
||||||
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
|
||||||
|
|
||||||
fun Configuration.asProvider() {
|
|
||||||
isVisible = false
|
|
||||||
isCanBeResolved = false
|
|
||||||
isCanBeConsumed = true
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Configuration.asConsumer() {
|
|
||||||
isVisible = false
|
|
||||||
isCanBeResolved = true
|
|
||||||
isCanBeConsumed = false
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
package dev.adamko.factoriowebmap.configurations
|
|
||||||
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
|
||||||
import org.gradle.api.attributes.AttributeContainer
|
|
||||||
import org.gradle.api.attributes.Bundling
|
|
||||||
import org.gradle.api.attributes.Category
|
|
||||||
import org.gradle.api.attributes.LibraryElements
|
|
||||||
import org.gradle.api.attributes.Usage
|
|
||||||
import org.gradle.api.model.ObjectFactory
|
|
||||||
import org.gradle.kotlin.dsl.named
|
|
||||||
|
|
||||||
fun Configuration.typescriptAttributes(objects: ObjectFactory) =
|
|
||||||
attributes { typescript(objects) }
|
|
||||||
|
|
||||||
fun AttributeContainer.typescript(objects: ObjectFactory) {
|
|
||||||
attribute(Usage.USAGE_ATTRIBUTE, objects.named("typescript"))
|
|
||||||
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
|
|
||||||
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.OBJECTS))
|
|
||||||
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
package dev.adamko.factoriowebmap.archetype
|
package dev.adamko.kafkatorio
|
||||||
|
|
||||||
|
import org.gradle.kotlin.dsl.base
|
||||||
|
import org.gradle.kotlin.dsl.extra
|
||||||
|
import org.gradle.kotlin.dsl.idea
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
idea
|
idea
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package dev.adamko.kafkatorio.gradle
|
||||||
|
|
||||||
|
import org.gradle.api.artifacts.Configuration
|
||||||
|
import org.gradle.api.attributes.Bundling
|
||||||
|
import org.gradle.api.attributes.Bundling.BUNDLING_ATTRIBUTE
|
||||||
|
import org.gradle.api.attributes.Category
|
||||||
|
import org.gradle.api.attributes.Category.CATEGORY_ATTRIBUTE
|
||||||
|
import org.gradle.api.attributes.LibraryElements
|
||||||
|
import org.gradle.api.attributes.LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE
|
||||||
|
import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
|
||||||
|
import org.gradle.api.model.ObjectFactory
|
||||||
|
import org.gradle.kotlin.dsl.named
|
||||||
|
|
||||||
|
|
||||||
|
fun Configuration.asProvider() {
|
||||||
|
isVisible = false
|
||||||
|
isCanBeResolved = false
|
||||||
|
isCanBeConsumed = true
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Configuration.asConsumer() {
|
||||||
|
isVisible = false
|
||||||
|
isCanBeResolved = true
|
||||||
|
isCanBeConsumed = false
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Configuration.factorioModAttributes(objects: ObjectFactory): Configuration =
|
||||||
|
attributes {
|
||||||
|
attribute(USAGE_ATTRIBUTE, objects.named("factorio"))
|
||||||
|
attribute(CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
|
||||||
|
attribute(LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.CLASSES_AND_RESOURCES))
|
||||||
|
attribute(BUNDLING_ATTRIBUTE, objects.named(Bundling.EMBEDDED))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Configuration.typescriptAttributes(objects: ObjectFactory) =
|
||||||
|
attributes {
|
||||||
|
attribute(USAGE_ATTRIBUTE, objects.named("typescript"))
|
||||||
|
attribute(CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
|
||||||
|
attribute(LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.OBJECTS))
|
||||||
|
attribute(BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
package dev.adamko.factoriowebmap.archetype
|
package dev.adamko.kafkatorio.lang
|
||||||
|
|
||||||
import org.gradle.kotlin.dsl.kotlin
|
import org.gradle.kotlin.dsl.kotlin
|
||||||
import com.github.gradle.node.npm.task.NpmTask
|
import com.github.gradle.node.npm.task.NpmTask
|
||||||
import com.github.gradle.node.task.NodeTask
|
import com.github.gradle.node.task.NodeTask
|
||||||
|
import org.gradle.kotlin.dsl.dependencies
|
||||||
|
import org.gradle.kotlin.dsl.extra
|
||||||
|
import org.gradle.kotlin.dsl.getting
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dukat.DtsResolver
|
import org.jetbrains.kotlin.gradle.targets.js.dukat.DtsResolver
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask
|
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask
|
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask
|
||||||
|
|
@ -12,8 +15,8 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("js")
|
kotlin("js")
|
||||||
id("dev.adamko.factoriowebmap.archetype.base")
|
id("dev.adamko.kafkatorio.base")
|
||||||
id("dev.adamko.factoriowebmap.archetype.node")
|
id("dev.adamko.kafkatorio.lang.node")
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
package dev.adamko.factoriowebmap.archetype
|
package dev.adamko.kafkatorio.lang
|
||||||
|
|
||||||
|
import org.gradle.kotlin.dsl.dependencies
|
||||||
|
import org.gradle.kotlin.dsl.kotlin
|
||||||
|
import org.gradle.kotlin.dsl.withType
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.base")
|
id("dev.adamko.kafkatorio.base")
|
||||||
kotlin("jvm")
|
kotlin("jvm")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
package dev.adamko.factoriowebmap.archetype
|
package dev.adamko.kafkatorio.lang
|
||||||
|
|
||||||
|
import org.gradle.kotlin.dsl.configure
|
||||||
|
import org.gradle.kotlin.dsl.kotlin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
||||||
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.base")
|
id("dev.adamko.kafkatorio.base")
|
||||||
id("dev.adamko.factoriowebmap.archetype.node")
|
id("dev.adamko.kafkatorio.lang.node")
|
||||||
kotlin("multiplatform")
|
kotlin("multiplatform")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
package dev.adamko.kafkatorio.lang
|
||||||
|
|
||||||
|
import com.github.gradle.node.NodePlugin
|
||||||
|
import dev.adamko.kafkatorio.task.UpdatePackageJson
|
||||||
|
import kotlinx.serialization.encodeToString
|
||||||
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
|
import kotlinx.serialization.json.JsonPrimitive
|
||||||
|
import kotlinx.serialization.json.jsonObject
|
||||||
|
import kotlinx.serialization.json.jsonPrimitive
|
||||||
|
import org.gradle.kotlin.dsl.registering
|
||||||
|
import org.gradle.kotlin.dsl.support.useToRun
|
||||||
|
import org.gradle.kotlin.dsl.withType
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlugin
|
||||||
|
import org.jetbrains.kotlin.util.suffixIfNot
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("com.github.node-gradle.node")
|
||||||
|
id("dev.adamko.kafkatorio.base")
|
||||||
|
}
|
||||||
|
|
||||||
|
node {
|
||||||
|
download.set(true)
|
||||||
|
version.set("14.18.0")
|
||||||
|
|
||||||
|
distBaseUrl.set(null as String?) // set by dependencyResolutionManagement
|
||||||
|
}
|
||||||
|
|
||||||
|
project.plugins.withType<KotlinJsPlugin>()
|
||||||
|
project.plugins.withType<KotlinMultiplatformPlugin>()
|
||||||
|
|
||||||
|
|
||||||
|
val jsonMapper = Json {
|
||||||
|
prettyPrint = true
|
||||||
|
prettyPrintIndent = " "
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
val packageJsonFile: RegularFile = layout.projectDirectory.file("src/main/typescript/package.json")
|
||||||
|
|
||||||
|
fun arePropertiesUpToDate(properties: () -> Map<String, String>): Spec<Task> =
|
||||||
|
Spec<Task> {
|
||||||
|
val packageJsonContent = packageJsonFile.asFile.readText()
|
||||||
|
val packageJson = jsonMapper.parseToJsonElement(packageJsonContent).jsonObject
|
||||||
|
|
||||||
|
properties().all { (key, expectedVal) ->
|
||||||
|
val actualVal = packageJson[key]?.jsonPrimitive?.content
|
||||||
|
val isUpToDate = expectedVal == actualVal
|
||||||
|
if (!isUpToDate) {
|
||||||
|
logger.lifecycle("package.json has outdated property $key=$actualVal (expected: $expectedVal)")
|
||||||
|
}
|
||||||
|
isUpToDate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val updatePackageJson by tasks.registering(UpdatePackageJson::class) {
|
||||||
|
group = NodePlugin.NODE_GROUP
|
||||||
|
|
||||||
|
group = project.name
|
||||||
|
description = "Read the package.json file and update the version and name, based on the project."
|
||||||
|
|
||||||
|
propertiesToCheck["version"] = "${project.version}"
|
||||||
|
|
||||||
|
outputs.file(packageJsonFile)
|
||||||
|
|
||||||
|
// check to see if the properties are already up-to-date
|
||||||
|
onlyIf(arePropertiesUpToDate { propertiesToCheck })
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
val packageJsonContent = packageJsonFile.asFile.readText()
|
||||||
|
val packageJson = jsonMapper.parseToJsonElement(packageJsonContent).jsonObject
|
||||||
|
|
||||||
|
val newJsonProps = propertiesToCheck.mapValues { (_, newVal) -> JsonPrimitive(newVal) }
|
||||||
|
|
||||||
|
val packageJsonUpdate = JsonObject(packageJson + newJsonProps)
|
||||||
|
val packageJsonContentUpdated =
|
||||||
|
jsonMapper
|
||||||
|
.encodeToString(packageJsonUpdate)
|
||||||
|
.suffixIfNot("\n")
|
||||||
|
|
||||||
|
packageJsonFile.asFile.writer().useToRun {
|
||||||
|
write(packageJsonContentUpdated)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
package dev.adamko.factoriowebmap.archetype
|
package dev.adamko.kafkatorio
|
||||||
|
|
||||||
|
import org.gradle.kotlin.dsl.extra
|
||||||
|
import org.gradle.kotlin.dsl.registering
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.base")
|
id("dev.adamko.kafkatorio.base")
|
||||||
}
|
}
|
||||||
|
|
||||||
val processRunnerTaskGroup: String by extra("processes")
|
val processRunnerTaskGroup: String by extra("processes")
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package dev.adamko.kafkatorio.task
|
||||||
|
|
||||||
|
import org.gradle.api.DefaultTask
|
||||||
|
import org.gradle.api.tasks.Input
|
||||||
|
|
||||||
|
abstract class UpdatePackageJson : DefaultTask() {
|
||||||
|
@get:Input
|
||||||
|
val propertiesToCheck: MutableMap<String, String> = mutableMapOf()
|
||||||
|
}
|
||||||
|
|
@ -1,23 +1,15 @@
|
||||||
import com.github.gradle.node.npm.task.NpmTask
|
import com.github.gradle.node.npm.task.NpmTask
|
||||||
import dev.adamko.factoriowebmap.configurations.asConsumer
|
import dev.adamko.kafkatorio.gradle.asConsumer
|
||||||
import dev.adamko.factoriowebmap.configurations.asProvider
|
import dev.adamko.kafkatorio.gradle.asProvider
|
||||||
import dev.adamko.factoriowebmap.configurations.factorioModAttributes
|
import dev.adamko.kafkatorio.gradle.factorioModAttributes
|
||||||
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
|
import dev.adamko.kafkatorio.gradle.typescriptAttributes
|
||||||
import groovy.json.JsonOutput
|
import groovy.json.JsonOutput
|
||||||
import kotlinx.serialization.encodeToString
|
|
||||||
import kotlinx.serialization.json.Json
|
|
||||||
import kotlinx.serialization.json.JsonObject
|
|
||||||
import kotlinx.serialization.json.JsonPrimitive
|
|
||||||
import kotlinx.serialization.json.jsonObject
|
|
||||||
import kotlinx.serialization.json.jsonPrimitive
|
|
||||||
import org.apache.tools.ant.filters.ReplaceTokens
|
import org.apache.tools.ant.filters.ReplaceTokens
|
||||||
import org.gradle.kotlin.dsl.support.useToRun
|
|
||||||
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
||||||
import org.jetbrains.kotlin.util.suffixIfNot
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
idea
|
idea
|
||||||
id("dev.adamko.factoriowebmap.archetype.node")
|
id("dev.adamko.kafkatorio.lang.node")
|
||||||
}
|
}
|
||||||
|
|
||||||
val tokens: Map<String, String> by project.extra
|
val tokens: Map<String, String> by project.extra
|
||||||
|
|
@ -29,8 +21,7 @@ node {
|
||||||
nodeProjectDir.set(tsSrcDir)
|
nodeProjectDir.set(tsSrcDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val typescriptEventsSchema by configurations.registering {
|
||||||
val dataModelTs by configurations.registering {
|
|
||||||
asConsumer()
|
asConsumer()
|
||||||
typescriptAttributes(objects)
|
typescriptAttributes(objects)
|
||||||
defaultDependencies {
|
defaultDependencies {
|
||||||
|
|
@ -38,7 +29,6 @@ val dataModelTs by configurations.registering {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
val typescriptToLua by tasks.registering(NpmTask::class) {
|
val typescriptToLua by tasks.registering(NpmTask::class) {
|
||||||
description = "Convert Typescript To Lua"
|
description = "Convert Typescript To Lua"
|
||||||
group = project.name
|
group = project.name
|
||||||
|
|
@ -75,56 +65,14 @@ val typescriptToLua by tasks.registering(NpmTask::class) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val updatePackageJsonVersion by tasks.registering {
|
val fetchEventsSchema by tasks.registering(Sync::class) {
|
||||||
group = project.name
|
|
||||||
description = """
|
|
||||||
Read the package.json file and set the version to be the project's version.
|
|
||||||
""".trimIndent()
|
|
||||||
|
|
||||||
val projectVersion = "${project.version}"
|
|
||||||
inputs.properties(
|
|
||||||
"projectVersion" to projectVersion,
|
|
||||||
)
|
|
||||||
|
|
||||||
val packageJsonFile = layout.projectDirectory.file("src/main/typescript/package.json")
|
|
||||||
outputs.file(packageJsonFile)
|
|
||||||
|
|
||||||
val jsonFormatter = Json {
|
|
||||||
prettyPrint = true
|
|
||||||
prettyPrintIndent = " "
|
|
||||||
}
|
|
||||||
|
|
||||||
onlyIf {
|
|
||||||
// check to see if the version is already up-to-date
|
|
||||||
val packageJsonContent = packageJsonFile.asFile.readText()
|
|
||||||
val packageJson = jsonFormatter.parseToJsonElement(packageJsonContent).jsonObject
|
|
||||||
packageJson["version"]?.jsonPrimitive?.content != projectVersion
|
|
||||||
}
|
|
||||||
|
|
||||||
doLast {
|
|
||||||
val packageJsonContent = packageJsonFile.asFile.readText()
|
|
||||||
val packageJson = jsonFormatter.parseToJsonElement(packageJsonContent).jsonObject
|
|
||||||
val packageJsonUpdate = JsonObject(
|
|
||||||
packageJson + ("version" to JsonPrimitive(projectVersion))
|
|
||||||
)
|
|
||||||
val packageJsonContentUpdated =
|
|
||||||
jsonFormatter
|
|
||||||
.encodeToString(packageJsonUpdate)
|
|
||||||
.suffixIfNot("\n")
|
|
||||||
packageJsonFile.asFile.writer().useToRun {
|
|
||||||
write(packageJsonContentUpdated)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val updateDataModel by tasks.registering(Sync::class) {
|
|
||||||
group = project.name
|
group = project.name
|
||||||
description = "Fetch the latest shared data-model"
|
description = "Fetch the latest shared data-model"
|
||||||
|
|
||||||
dependsOn(dataModelTs)
|
dependsOn(typescriptEventsSchema)
|
||||||
|
|
||||||
from(
|
from(
|
||||||
dataModelTs.map { c ->
|
typescriptEventsSchema.map { c ->
|
||||||
c.incoming
|
c.incoming
|
||||||
.artifactView { lenient(true) }
|
.artifactView { lenient(true) }
|
||||||
.artifacts
|
.artifacts
|
||||||
|
|
@ -136,7 +84,6 @@ val updateDataModel by tasks.registering(Sync::class) {
|
||||||
into(layout.projectDirectory.dir("src/main/typescript/model"))
|
into(layout.projectDirectory.dir("src/main/typescript/model"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
val packageMod by tasks.registering(Zip::class) {
|
val packageMod by tasks.registering(Zip::class) {
|
||||||
description = "Package mod files into ZIP"
|
description = "Package mod files into ZIP"
|
||||||
group = project.name
|
group = project.name
|
||||||
|
|
@ -204,8 +151,11 @@ val factorioModProvider by configurations.registering {
|
||||||
outgoing.artifact(packageMod)
|
outgoing.artifact(packageMod)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.updatePackageJson {
|
||||||
|
propertiesToCheck["name"] = "${rootProject.name}-${project.name}"
|
||||||
|
}
|
||||||
|
|
||||||
tasks.assemble { dependsOn(updateDataModel, updatePackageJsonVersion) }
|
tasks.assemble { dependsOn(fetchEventsSchema, tasks.updatePackageJson) }
|
||||||
tasks.build { dependsOn(packageMod) }
|
tasks.build { dependsOn(packageMod) }
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,4 @@
|
||||||
// import {Data, Mods} from "typed-factorio/settings/types"
|
|
||||||
// import { events } from "typed-factorio/generated"
|
|
||||||
|
|
||||||
// declare const factorioData: Data
|
|
||||||
// declare const factorioMods: Mods
|
|
||||||
|
|
||||||
|
|
||||||
import {Serdes} from "./serdes/serdes"
|
import {Serdes} from "./serdes/serdes"
|
||||||
// import {FactorioEvent, JsonTable} from "./model/model";
|
|
||||||
|
|
||||||
|
|
||||||
const MOD_VERSION = script.active_mods["factorio-web-map"]
|
const MOD_VERSION = script.active_mods["factorio-web-map"]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "factorio-web-map-mod",
|
"name": "kafkatorio-events",
|
||||||
"version": "0.0.7",
|
"version": "0.0.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.kotlin-jvm")
|
id("dev.adamko.kafkatorio.lang.kotlin-jvm")
|
||||||
kotlin("plugin.serialization")
|
kotlin("plugin.serialization")
|
||||||
application
|
application
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.processor
|
package dev.adamko.kafkatorio.processor
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process the raw messages from a server.
|
* Process the raw messages from a server.
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.processor
|
package dev.adamko.kafkatorio.processor
|
||||||
|
|
||||||
import java.util.Properties
|
import java.util.Properties
|
||||||
import org.apache.kafka.streams.KafkaStreams
|
import org.apache.kafka.streams.KafkaStreams
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.processor
|
package dev.adamko.kafkatorio.processor
|
||||||
|
|
||||||
import org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler
|
import org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler
|
||||||
import org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler.StreamThreadExceptionResponse
|
import org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler.StreamThreadExceptionResponse
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package dev.adamko.factorioevents.processor.config
|
package dev.adamko.kafkatorio.processor.config
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode
|
import com.fasterxml.jackson.databind.JsonNode
|
||||||
import dev.adamko.factorioevents.processor.config.PortVal.Companion.portVal
|
import dev.adamko.kafkatorio.processor.config.PortVal.Companion.portVal
|
||||||
import java.io.StringReader
|
import java.io.StringReader
|
||||||
import java.time.Clock
|
import java.time.Clock
|
||||||
import java.util.Properties
|
import java.util.Properties
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.processor.config
|
package dev.adamko.kafkatorio.processor.config
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import org.http4k.cloudnative.env.Environment
|
import org.http4k.cloudnative.env.Environment
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.processor.config
|
package dev.adamko.kafkatorio.processor.config
|
||||||
|
|
||||||
import org.http4k.cloudnative.env.Port
|
import org.http4k.cloudnative.env.Port
|
||||||
import org.http4k.lens.BiDiLensSpec
|
import org.http4k.lens.BiDiLensSpec
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.processor.config
|
package dev.adamko.kafkatorio.processor.config
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileNotFoundException
|
import java.io.FileNotFoundException
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package dev.adamko.factorioevents.processor
|
package dev.adamko.kafkatorio.processor
|
||||||
|
|
||||||
import dev.adamko.factorioevents.model.FactorioEvent
|
import dev.adamko.kafkatorio.events.schema.FactorioEvent
|
||||||
import dev.adamko.factorioevents.model.jsonMapper
|
import dev.adamko.kafkatorio.events.schema.jsonMapper
|
||||||
import dev.adamko.factorioevents.processor.config.ApplicationProperties
|
import dev.adamko.kafkatorio.processor.config.ApplicationProperties
|
||||||
import java.time.Duration
|
import java.time.Duration
|
||||||
import org.apache.kafka.common.serialization.Serdes
|
import org.apache.kafka.common.serialization.Serdes
|
||||||
import org.apache.kafka.streams.KafkaStreams
|
import org.apache.kafka.streams.KafkaStreams
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import dev.adamko.factoriowebmap.configurations.asProvider
|
import dev.adamko.kafkatorio.gradle.asProvider
|
||||||
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
|
import dev.adamko.kafkatorio.gradle.typescriptAttributes
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.kotlin-jvm")
|
id("dev.adamko.kafkatorio.lang.kotlin-jvm")
|
||||||
kotlin("plugin.serialization")
|
kotlin("plugin.serialization")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
@file:Suppress("ClassName")
|
@file:Suppress("ClassName")
|
||||||
|
|
||||||
package dev.adamko.factorioevents.model
|
package dev.adamko.kafkatorio.events.schema
|
||||||
|
|
||||||
|
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.model
|
package dev.adamko.kafkatorio.events.schema
|
||||||
|
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.model
|
package dev.adamko.kafkatorio.events.schema
|
||||||
|
|
||||||
import kotlinx.serialization.KSerializer
|
import kotlinx.serialization.KSerializer
|
||||||
import kotlinx.serialization.builtins.ListSerializer
|
import kotlinx.serialization.builtins.ListSerializer
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package dev.adamko.factorioevents.model
|
package dev.adamko.kafkatorio.events.schema
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
@ -1,5 +1,12 @@
|
||||||
package dev.adamko.factorioevents.model
|
package dev.adamko.kafkatorio.events.schema
|
||||||
|
|
||||||
|
import dev.adamko.kafkatorio.events.schema.EntityData
|
||||||
|
import dev.adamko.kafkatorio.events.schema.FactorioEvent
|
||||||
|
import dev.adamko.kafkatorio.events.schema.FactorioObjectData
|
||||||
|
import dev.adamko.kafkatorio.events.schema.PlayerData
|
||||||
|
import dev.adamko.kafkatorio.events.schema.PositionData
|
||||||
|
import dev.adamko.kafkatorio.events.schema.SurfaceData
|
||||||
|
import dev.adamko.kafkatorio.events.schema.jsonMapper
|
||||||
import io.kotest.core.spec.style.BehaviorSpec
|
import io.kotest.core.spec.style.BehaviorSpec
|
||||||
import io.kotest.matchers.equality.shouldBeEqualToComparingFields
|
import io.kotest.matchers.equality.shouldBeEqualToComparingFields
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import dev.adamko.factoriowebmap.configurations.asConsumer
|
import dev.adamko.kafkatorio.gradle.asConsumer
|
||||||
import dev.adamko.factoriowebmap.configurations.factorioModAttributes
|
import dev.adamko.kafkatorio.gradle.factorioModAttributes
|
||||||
import dev.adamko.isProcessRunning
|
import dev.adamko.isProcessRunning
|
||||||
import dev.adamko.not
|
import dev.adamko.not
|
||||||
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.process-runner")
|
id("dev.adamko.kafkatorio.process-runner")
|
||||||
}
|
}
|
||||||
|
|
||||||
val tokens: Map<String, String> by project.extra
|
val tokens: Map<String, String> by project.extra
|
||||||
|
|
@ -78,4 +78,3 @@ tasks.processRun {
|
||||||
tasks.processKill {
|
tasks.processKill {
|
||||||
dependsOn(clientKill)
|
dependsOn(clientKill)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import dev.adamko.factoriowebmap.configurations.asConsumer
|
import dev.adamko.kafkatorio.gradle.asConsumer
|
||||||
import dev.adamko.factoriowebmap.configurations.factorioModAttributes
|
import dev.adamko.kafkatorio.gradle.factorioModAttributes
|
||||||
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.process-runner")
|
id("dev.adamko.kafkatorio.process-runner")
|
||||||
}
|
}
|
||||||
|
|
||||||
val tokens: Map<String, String> by project.extra
|
val tokens: Map<String, String> by project.extra
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.process-runner")
|
id("dev.adamko.kafkatorio.process-runner")
|
||||||
}
|
}
|
||||||
|
|
||||||
description = "Send events from a Factorio server to a Kafka topic "
|
description = "Send events from a Factorio server to a Kafka topic "
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
plugins {
|
plugins {
|
||||||
id("dev.adamko.factoriowebmap.archetype.kotlin-jvm")
|
id("dev.adamko.kafkatorio.lang.kotlin-jvm")
|
||||||
}
|
}
|
||||||
|
|
||||||
//group = "${rootProject.group}.server"
|
//group = "${rootProject.group}.server"
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,22 @@
|
||||||
package dev.adamko.ktrcon
|
package dev.adamko.ktrcon
|
||||||
|
|
||||||
import kotlin.time.Duration
|
import kotlin.time.Duration.Companion.seconds
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
|
||||||
fun main(): Unit = runBlocking {
|
fun main(): Unit = runBlocking {
|
||||||
KtRconClient3(
|
KtRconClient3(
|
||||||
"localhost",
|
"localhost",
|
||||||
27715,
|
27715,
|
||||||
Password("coh9oongoojahX4")
|
Password("coh9oongoojahX4")
|
||||||
).use { client ->
|
).use { client ->
|
||||||
|
|
||||||
|
|
||||||
// client.send(PacketType.AUTH_REQUEST, "passwrd")
|
// client.send(PacketType.AUTH_REQUEST, "passwrd")
|
||||||
client.send(PacketType.AUTH_REQUEST, "coh9oongoojahX4")
|
client.send(PacketType.AUTH_REQUEST, "coh9oongoojahX4")
|
||||||
delay(Duration.seconds(10))
|
delay(10.seconds)
|
||||||
|
|
||||||
client.send(PacketType.EXEC_COMMAND, "/help")
|
client.send(PacketType.EXEC_COMMAND, "/help")
|
||||||
|
|
||||||
|
delay(10.seconds)
|
||||||
delay(Duration.seconds(10))
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue