more re-organisation to new name

This commit is contained in:
Adam 2021-12-01 18:12:34 +01:00
parent 633e898f3c
commit 8c75b47a96
37 changed files with 219 additions and 197 deletions

View file

@ -1,23 +1,15 @@
import com.github.gradle.node.npm.task.NpmTask
import dev.adamko.factoriowebmap.configurations.asConsumer
import dev.adamko.factoriowebmap.configurations.asProvider
import dev.adamko.factoriowebmap.configurations.factorioModAttributes
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.asProvider
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import dev.adamko.kafkatorio.gradle.typescriptAttributes
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.gradle.kotlin.dsl.support.useToRun
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
import org.jetbrains.kotlin.util.suffixIfNot
plugins {
idea
id("dev.adamko.factoriowebmap.archetype.node")
id("dev.adamko.kafkatorio.lang.node")
}
val tokens: Map<String, String> by project.extra
@ -29,8 +21,7 @@ node {
nodeProjectDir.set(tsSrcDir)
}
val dataModelTs by configurations.registering {
val typescriptEventsSchema by configurations.registering {
asConsumer()
typescriptAttributes(objects)
defaultDependencies {
@ -38,7 +29,6 @@ val dataModelTs by configurations.registering {
}
}
val typescriptToLua by tasks.registering(NpmTask::class) {
description = "Convert Typescript To Lua"
group = project.name
@ -75,56 +65,14 @@ val typescriptToLua by tasks.registering(NpmTask::class) {
}
val updatePackageJsonVersion by tasks.registering {
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) {
val fetchEventsSchema by tasks.registering(Sync::class) {
group = project.name
description = "Fetch the latest shared data-model"
dependsOn(dataModelTs)
dependsOn(typescriptEventsSchema)
from(
dataModelTs.map { c ->
typescriptEventsSchema.map { c ->
c.incoming
.artifactView { lenient(true) }
.artifacts
@ -136,7 +84,6 @@ val updateDataModel by tasks.registering(Sync::class) {
into(layout.projectDirectory.dir("src/main/typescript/model"))
}
val packageMod by tasks.registering(Zip::class) {
description = "Package mod files into ZIP"
group = project.name
@ -204,8 +151,11 @@ val factorioModProvider by configurations.registering {
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) }

View file

@ -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 {FactorioEvent, JsonTable} from "./model/model";
const MOD_VERSION = script.active_mods["factorio-web-map"]

View file

@ -1,5 +1,5 @@
{
"name": "factorio-web-map-mod",
"name": "kafkatorio-events",
"version": "0.0.7",
"private": true,
"scripts": {

View file

@ -1,5 +1,5 @@
plugins {
id("dev.adamko.factoriowebmap.archetype.kotlin-jvm")
id("dev.adamko.kafkatorio.lang.kotlin-jvm")
kotlin("plugin.serialization")
application
}

View file

@ -1,4 +1,4 @@
package dev.adamko.factorioevents.processor
package dev.adamko.kafkatorio.processor
/**
* Process the raw messages from a server.

View file

@ -1,4 +1,4 @@
package dev.adamko.factorioevents.processor
package dev.adamko.kafkatorio.processor
import java.util.Properties
import org.apache.kafka.streams.KafkaStreams

View file

@ -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.StreamThreadExceptionResponse

View file

@ -1,7 +1,7 @@
package dev.adamko.factorioevents.processor.config
package dev.adamko.kafkatorio.processor.config
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.time.Clock
import java.util.Properties

View file

@ -1,4 +1,4 @@
package dev.adamko.factorioevents.processor.config
package dev.adamko.kafkatorio.processor.config
import java.io.File
import org.http4k.cloudnative.env.Environment

View file

@ -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.lens.BiDiLensSpec

View file

@ -1,4 +1,4 @@
package dev.adamko.factorioevents.processor.config
package dev.adamko.kafkatorio.processor.config
import java.io.File
import java.io.FileNotFoundException

View file

@ -1,8 +1,8 @@
package dev.adamko.factorioevents.processor
package dev.adamko.kafkatorio.processor
import dev.adamko.factorioevents.model.FactorioEvent
import dev.adamko.factorioevents.model.jsonMapper
import dev.adamko.factorioevents.processor.config.ApplicationProperties
import dev.adamko.kafkatorio.events.schema.FactorioEvent
import dev.adamko.kafkatorio.events.schema.jsonMapper
import dev.adamko.kafkatorio.processor.config.ApplicationProperties
import java.time.Duration
import org.apache.kafka.common.serialization.Serdes
import org.apache.kafka.streams.KafkaStreams

View file

@ -1,8 +1,8 @@
import dev.adamko.factoriowebmap.configurations.asProvider
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
import dev.adamko.kafkatorio.gradle.asProvider
import dev.adamko.kafkatorio.gradle.typescriptAttributes
plugins {
id("dev.adamko.factoriowebmap.archetype.kotlin-jvm")
id("dev.adamko.kafkatorio.lang.kotlin-jvm")
kotlin("plugin.serialization")
}

View file

@ -1,6 +1,6 @@
@file:Suppress("ClassName")
package dev.adamko.factorioevents.model
package dev.adamko.kafkatorio.events.schema
import kotlinx.serialization.Serializable

View file

@ -1,4 +1,4 @@
package dev.adamko.factorioevents.model
package dev.adamko.kafkatorio.events.schema
import kotlinx.serialization.SerialName

View file

@ -1,4 +1,4 @@
package dev.adamko.factorioevents.model
package dev.adamko.kafkatorio.events.schema
import kotlinx.serialization.KSerializer
import kotlinx.serialization.builtins.ListSerializer

View file

@ -1,4 +1,4 @@
package dev.adamko.factorioevents.model
package dev.adamko.kafkatorio.events.schema
import java.io.File
import kotlin.reflect.KClass

View file

@ -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.matchers.equality.shouldBeEqualToComparingFields
import kotlinx.serialization.decodeFromString

View file

@ -1,11 +1,11 @@
import dev.adamko.factoriowebmap.configurations.asConsumer
import dev.adamko.factoriowebmap.configurations.factorioModAttributes
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import dev.adamko.isProcessRunning
import dev.adamko.not
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
id("dev.adamko.factoriowebmap.archetype.process-runner")
id("dev.adamko.kafkatorio.process-runner")
}
val tokens: Map<String, String> by project.extra
@ -78,4 +78,3 @@ tasks.processRun {
tasks.processKill {
dependsOn(clientKill)
}

View file

@ -1,9 +1,9 @@
import dev.adamko.factoriowebmap.configurations.asConsumer
import dev.adamko.factoriowebmap.configurations.factorioModAttributes
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
id("dev.adamko.factoriowebmap.archetype.process-runner")
id("dev.adamko.kafkatorio.process-runner")
}
val tokens: Map<String, String> by project.extra

View file

@ -1,5 +1,5 @@
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 "

View file

@ -1,5 +1,5 @@
plugins {
id("dev.adamko.factoriowebmap.archetype.kotlin-jvm")
id("dev.adamko.kafkatorio.lang.kotlin-jvm")
}
//group = "${rootProject.group}.server"

View file

@ -1,25 +1,22 @@
package dev.adamko.ktrcon
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
fun main(): Unit = runBlocking {
KtRconClient3(
"localhost",
27715,
Password("coh9oongoojahX4")
"localhost",
27715,
Password("coh9oongoojahX4")
).use { client ->
// client.send(PacketType.AUTH_REQUEST, "passwrd")
client.send(PacketType.AUTH_REQUEST, "coh9oongoojahX4")
delay(Duration.seconds(10))
delay(10.seconds)
client.send(PacketType.EXEC_COMMAND, "/help")
delay(Duration.seconds(10))
delay(10.seconds)
}
}