summaryrefslogtreecommitdiff
path: root/plugin/src/main/kotlin/moe/nea/archenemy/util
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/src/main/kotlin/moe/nea/archenemy/util')
-rw-r--r--plugin/src/main/kotlin/moe/nea/archenemy/util/DigestUtils.kt8
-rw-r--r--plugin/src/main/kotlin/moe/nea/archenemy/util/EnvType.kt9
-rw-r--r--plugin/src/main/kotlin/moe/nea/archenemy/util/FSUtil.kt33
3 files changed, 50 insertions, 0 deletions
diff --git a/plugin/src/main/kotlin/moe/nea/archenemy/util/DigestUtils.kt b/plugin/src/main/kotlin/moe/nea/archenemy/util/DigestUtils.kt
index 4f50000..d2de936 100644
--- a/plugin/src/main/kotlin/moe/nea/archenemy/util/DigestUtils.kt
+++ b/plugin/src/main/kotlin/moe/nea/archenemy/util/DigestUtils.kt
@@ -1,5 +1,6 @@
package moe.nea.archenemy.util
+import org.gradle.api.artifacts.ModuleDependency
import java.security.MessageDigest
fun MessageDigest.updateField(text: String, value: String) {
@@ -11,4 +12,11 @@ fun MessageDigest.updateField(text: String, value: String) {
fun MessageDigest.update(text: String) {
this.update(text.encodeToByteArray())
+}
+
+fun MessageDigest.updateGMV(name: String, moduleDependency: ModuleDependency) {
+ this.updateField(
+ name,
+ (moduleDependency.group ?: "") + ":" + moduleDependency.name + ":" + (moduleDependency.version ?: "")
+ )
} \ No newline at end of file
diff --git a/plugin/src/main/kotlin/moe/nea/archenemy/util/EnvType.kt b/plugin/src/main/kotlin/moe/nea/archenemy/util/EnvType.kt
new file mode 100644
index 0000000..72d18b6
--- /dev/null
+++ b/plugin/src/main/kotlin/moe/nea/archenemy/util/EnvType.kt
@@ -0,0 +1,9 @@
+package moe.nea.archenemy.util
+
+enum class EnvType(val classifier: String?, val mcp: Int) {
+ CLIENT("client", 0),
+ SERVER("server", 1),
+ COMBINED(null, 2),
+ DATAGEN("server", 1)
+ ;
+} \ No newline at end of file
diff --git a/plugin/src/main/kotlin/moe/nea/archenemy/util/FSUtil.kt b/plugin/src/main/kotlin/moe/nea/archenemy/util/FSUtil.kt
new file mode 100644
index 0000000..0b2f70e
--- /dev/null
+++ b/plugin/src/main/kotlin/moe/nea/archenemy/util/FSUtil.kt
@@ -0,0 +1,33 @@
+package moe.nea.archenemy.util
+
+import java.io.InputStream
+import java.net.URI
+import java.nio.file.FileSystem
+import java.nio.file.FileSystems
+import java.nio.file.Path
+import java.util.zip.ZipInputStream
+import java.util.zip.ZipOutputStream
+import kotlin.io.path.createDirectories
+import kotlin.io.path.exists
+import kotlin.io.path.inputStream
+import kotlin.io.path.outputStream
+
+// TODO: Figure out license shit with unimined cause i copied some of these utils?
+fun Path.zipFs(): FileSystem {
+ if (!exists()) {
+ parent.createDirectories()
+ ZipOutputStream(this.outputStream()).use { }
+ }
+ return FileSystems.newFileSystem(URI.create("jar:${toUri()}"), mapOf("create" to true), null)
+}
+
+fun Path.readZipFs(reader: (String, InputStream) -> Unit) {
+ ZipInputStream(this.inputStream()).use { stream ->
+ for (entry in generateSequence { stream.nextEntry }) {
+ if (entry.isDirectory) {
+ continue
+ }
+ reader(entry.name, stream)
+ }
+ }
+}