diff --git a/snark-ktor/src/main/kotlin/space/kscience/snark/ktor/WebInterface.kt b/snark-ktor/src/main/kotlin/space/kscience/snark/ktor/WebInterface.kt
index 3e181f0..ccdf32a 100644
--- a/snark-ktor/src/main/kotlin/space/kscience/snark/ktor/WebInterface.kt
+++ b/snark-ktor/src/main/kotlin/space/kscience/snark/ktor/WebInterface.kt
@@ -10,15 +10,9 @@ import io.ktor.server.request.*
import io.ktor.server.response.*
import kotlinx.html.*
import io.ktor.server.routing.*
-import java.nio.file.Path
import space.kscience.snark.storage.Directory
-import space.kscience.snark.storage.local.localStorage
-import kotlin.io.path.createTempDirectory
-import kotlin.io.path.isDirectory
-import kotlin.io.path.listDirectoryEntries
import space.kscience.snark.storage.unzip.unzip
import kotlin.io.createTempFile
-import kotlin.io.path.*
import kotlin.io.writeBytes
public interface DataHolder {
@@ -27,43 +21,6 @@ public interface DataHolder {
public fun represent(relativePath: String = "/"): String
}
-internal class LocalDataHolder: DataHolder {
- private var source: Path? = null
- private var response: String = ""
-
- private fun getPath(relativePath: String) : Path {
- return source!! / Path(relativePath.drop(1))
- }
- override fun init(relativePath: String): Directory {
- if (source == null) {
- source = createTempDirectory()
- }
- val path = getPath(relativePath)
- path.createDirectories()
- path.toFile().deleteRecursively()
- path.createDirectory()
- return localStorage(path)
- }
- private fun buildResponse(from: Path, cur: Path) {
- for (entry in cur.listDirectoryEntries()) {
- if (entry.isDirectory()) {
- buildResponse(from, entry)
- } else {
- response += from.relativize(entry).toString() + "
"
- }
- }
- }
- override fun represent(relativePath: String) : String =
- if (source == null) {
- "No data was loaded!"
- } else {
- response = "List of files:
"
- val path = getPath(relativePath)
- buildResponse(path, path)
- response
- }
-}
-
public class SNARKServer(private val dataHolder: DataHolder, private val port: Int): Runnable {
private var relativePath = "/"
diff --git a/snark-ktor/src/test/kotlin/space/kscience/snark/ktor/testServer.kt b/snark-ktor/src/test/kotlin/space/kscience/snark/ktor/testServer.kt
index 6c4ee11..6a16f68 100644
--- a/snark-ktor/src/test/kotlin/space/kscience/snark/ktor/testServer.kt
+++ b/snark-ktor/src/test/kotlin/space/kscience/snark/ktor/testServer.kt
@@ -1,5 +1,50 @@
package space.kscience.snark.ktor
+import space.kscience.snark.storage.Directory
+import space.kscience.snark.storage.local.localStorage
+import java.nio.file.Path
+import kotlin.io.path.*
+import kotlin.io.path.createTempDirectory
+import kotlin.io.path.isDirectory
+import kotlin.io.path.listDirectoryEntries
+
+private class LocalDataHolder: DataHolder {
+ private var source: Path? = null
+ private var response: String = ""
+
+ private fun getPath(relativePath: String) : Path {
+ return source!! / Path(relativePath.dropWhile{it == '/'})
+ }
+ override fun init(relativePath: String): Directory {
+ if (source == null) {
+ source = createTempDirectory()
+ }
+ val path = getPath(relativePath)
+ path.createDirectories()
+ path.toFile().deleteRecursively()
+ path.createDirectory()
+ return localStorage(path)
+ }
+ private fun buildResponse(from: Path, cur: Path) {
+ for (entry in cur.listDirectoryEntries()) {
+ if (entry.isDirectory()) {
+ buildResponse(from, entry)
+ } else {
+ response += from.relativize(entry).toString() + "
"
+ }
+ }
+ }
+ override fun represent(relativePath: String) : String =
+ if (source == null) {
+ "No data was loaded!"
+ } else {
+ response = "List of files:
"
+ val path = getPath(relativePath)
+ buildResponse(path, path)
+ response
+ }
+}
+
fun main() {
SNARKServer(LocalDataHolder(), 9090).run()
}
\ No newline at end of file