mirror of https://github.com/sbt/sbt.git
parent
d75d95d653
commit
8e7dfb4b20
|
|
@ -9,6 +9,7 @@ package sbt
|
|||
package internal
|
||||
|
||||
import java.io.IOException
|
||||
import java.nio.file.Files
|
||||
import java.util.concurrent.ConcurrentLinkedQueue
|
||||
import java.util.concurrent.atomic._
|
||||
import scala.collection.mutable.ListBuffer
|
||||
|
|
@ -23,6 +24,7 @@ import BasicKeys.{
|
|||
logLevel
|
||||
}
|
||||
import java.net.Socket
|
||||
import org.scalasbt.ipcsocket.UnixDomainSocketLibrary
|
||||
import sjsonnew.JsonFormat
|
||||
import sjsonnew.shaded.scalajson.ast.unsafe._
|
||||
import scala.concurrent.Await
|
||||
|
|
@ -32,7 +34,7 @@ import sbt.io.syntax._
|
|||
import sbt.io.{ Hash, IO }
|
||||
import sbt.internal.server._
|
||||
import sbt.internal.langserver.{ LogMessageParams, MessageType }
|
||||
import sbt.internal.util.{ StringEvent, ObjectEvent, MainAppender }
|
||||
import sbt.internal.util.{ StringEvent, ObjectEvent, MainAppender, Util }
|
||||
import sbt.internal.util.codec.JValueFormats
|
||||
import sbt.protocol.{ EventMessage, ExecStatusEvent }
|
||||
import sbt.util.{ Level, Logger, LogExchange }
|
||||
|
|
@ -140,7 +142,18 @@ private[sbt] final class CommandExchange {
|
|||
val portfile = s.baseDir / "project" / "target" / "active.json"
|
||||
val h = Hash.halfHashString(IO.toURI(portfile).toString)
|
||||
val tokenfile = BuildPaths.getGlobalBase(s) / "server" / h / "token.json"
|
||||
val socketfile = BuildPaths.getGlobalBase(s) / "server" / h / "sock"
|
||||
val socketfile = {
|
||||
val socketfile = BuildPaths.getGlobalBase(s) / "server" / h / "sock"
|
||||
connectionType match {
|
||||
case ConnectionType.Local if !Util.isWindows =>
|
||||
val maxSocketLength = new UnixDomainSocketLibrary.SockaddrUn().sunPath.length - 1
|
||||
if (socketfile.absolutePath.length > maxSocketLength)
|
||||
Files.createTempFile("sbt-server", ".sock").toFile // assuming this is short enough..
|
||||
else
|
||||
socketfile
|
||||
case _ => socketfile
|
||||
}
|
||||
}
|
||||
val pipeName = "sbt-server-" + h
|
||||
val connection = ServerConnection(
|
||||
connectionType,
|
||||
|
|
|
|||
Loading…
Reference in New Issue