@@ -20,33 +20,35 @@ import java.nio.file.NoSuchFileException
20
20
import scala .util .Properties
21
21
22
22
object Paths {
23
- private val projectDirectories = ProjectDirectories .from(" " , " " , " bloop" )
23
+ private lazy val projectDirectories = ProjectDirectories .from(" " , " " , " bloop" )
24
24
private def createDirFor (filepath : String ): AbsolutePath =
25
25
AbsolutePath (Files .createDirectories(NioPaths .get(filepath)))
26
26
27
- final val bloopCacheDir : AbsolutePath = createDirFor(projectDirectories.cacheDir)
28
- final val bloopDataDir : AbsolutePath = createDirFor(projectDirectories.dataDir)
29
- final val bloopLogsDir : AbsolutePath = createDirFor(bloopDataDir.resolve(" logs" ).syntax)
30
- final val bloopConfigDir : AbsolutePath = createDirFor(projectDirectories.configDir)
31
-
32
- final val daemonDir : AbsolutePath = {
33
- val baseDir =
34
- if (Properties .isMac) bloopCacheDir
35
- else bloopDataDir
36
- val dir = baseDir.resolve(" daemon" )
37
- if (! Files .exists(dir.underlying)) {
38
- Files .createDirectories(dir.underlying)
39
- if (! Properties .isWin) {
27
+ private lazy val bloopCacheDir : AbsolutePath = createDirFor(projectDirectories.cacheDir)
28
+ private lazy val bloopDataDir : AbsolutePath = createDirFor(projectDirectories.dataDir)
29
+
30
+ lazy val daemonDir : AbsolutePath = {
31
+ def defaultDir = {
32
+ val baseDir =
33
+ if (Properties .isMac) bloopCacheDir.underlying
34
+ else bloopDataDir.underlying
35
+ baseDir.resolve(" daemon" )
36
+ }
37
+ val dir = Option (System .getenv(" BLOOP_DAEMON_DIR" )).filter(_.trim.nonEmpty) match {
38
+ case Some (dirStr) => java.nio.file.Paths .get(dirStr)
39
+ case None => defaultDir
40
+ }
41
+ if (! Files .exists(dir)) {
42
+ Files .createDirectories(dir)
43
+ if (! Properties .isWin)
40
44
Files .setPosixFilePermissions(
41
- dir.underlying ,
45
+ dir,
42
46
PosixFilePermissions .fromString(" rwx------" )
43
47
)
44
- }
45
48
}
46
- dir
49
+ AbsolutePath ( dir)
47
50
}
48
-
49
- final val pipeName : String = " scala_bloop_server"
51
+ def pipeName : String = " scala_bloop_server"
50
52
51
53
def getCacheDirectory (dirName : String ): AbsolutePath = {
52
54
val dir = bloopCacheDir.resolve(dirName)
0 commit comments