1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 16:28:12 -07:00

KobaltServer now creates a server file with the port init.

~/.kobalt/kobaltServer.properties
This commit is contained in:
Cedric Beust 2016-04-21 23:11:09 -08:00
parent 315a4fc501
commit eb7e6d7108
2 changed files with 32 additions and 5 deletions

View file

@ -48,7 +48,7 @@ class KFiles {
}
companion object {
internal const val KOBALT_DOT_DIR : String = ".kobalt"
const val KOBALT_DOT_DIR : String = ".kobalt"
val KOBALT_DIR : String = "kobalt"
val HOME_KOBALT_DIR = makeDir(homeDir(".config", KOBALT_DIR))
val KOBALT_BUILD_DIR = "kobaltBuild"

View file

@ -2,19 +2,20 @@ package com.beust.kobalt.app.remote
import com.beust.kobalt.Args
import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.homeDir
import com.beust.kobalt.internal.remote.CommandData
import com.beust.kobalt.internal.remote.ICommandSender
import com.beust.kobalt.internal.remote.PingCommand
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.log
import com.google.gson.Gson
import com.google.gson.JsonObject
import com.google.gson.JsonParser
import com.google.inject.Singleton
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.PrintWriter
import java.io.*
import java.net.ServerSocket
import java.net.SocketException
import java.util.*
import javax.inject.Inject
@Singleton
@ -28,6 +29,30 @@ public class KobaltServer @Inject constructor(val args: Args) : Runnable, IComma
}.toMap()
override fun run() {
try {
createServerFile(args.port)
privateRun()
} finally {
deleteServerFile()
}
}
val SERVER_FILE = KFiles.joinDir(homeDir(KFiles.KOBALT_DOT_DIR, "kobaltServer.properties"))
val KEY_PORT = "port"
private fun createServerFile(port: Int) {
Properties().apply {
put(KEY_PORT, port.toString())
}.store(FileWriter(SERVER_FILE), "")
log(2, "KobaltServer created $SERVER_FILE")
}
private fun deleteServerFile() {
log(1, "KobaltServer deleting $SERVER_FILE")
File(SERVER_FILE).delete()
}
private fun privateRun() {
val portNumber = args.port
log(1, "Listening to port $portNumber")
@ -71,7 +96,9 @@ public class KobaltServer @Inject constructor(val args: Args) : Runnable, IComma
clientSocket = serverSocket.accept()
} catch(ex: Throwable) {
ex.printStackTrace()
sendData(CommandData(commandName!!, null, ex.message))
if (commandName != null) {
sendData(CommandData(commandName, null, ex.message))
}
log(1, "Command failed: ${ex.message}")
}
}