Skip to content

Commit a098d3d

Browse files
committed
Expand data and binary directories
1 parent c45b1e0 commit a098d3d

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

src/main/kotlin/com/coder/gateway/settings/CoderSettings.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.coder.gateway.settings
33
import com.coder.gateway.services.CoderSettingsState
44
import com.coder.gateway.util.Arch
55
import com.coder.gateway.util.OS
6+
import com.coder.gateway.util.expand
67
import com.coder.gateway.util.getArch
78
import com.coder.gateway.util.getOS
89
import com.coder.gateway.util.safeHost
@@ -39,7 +40,7 @@ open class CoderSettings(
3940
*/
4041
fun dataDir(url: URL): Path {
4142
val dir = if (state.dataDirectory.isBlank()) dataDir
42-
else Path.of(state.dataDirectory).toAbsolutePath()
43+
else Path.of(expand(state.dataDirectory)).toAbsolutePath()
4344
return withHost(dir, url)
4445
}
4546

@@ -66,7 +67,7 @@ open class CoderSettings(
6667
fun binPath(url: URL, forceDownloadToData: Boolean = false): Path {
6768
val binaryName = getCoderCLIForOS(getOS(), getArch())
6869
val dir = if (forceDownloadToData || state.binaryDirectory.isBlank()) dataDir(url)
69-
else withHost(Path.of(state.binaryDirectory).toAbsolutePath(), url)
70+
else withHost(Path.of(expand(state.binaryDirectory)).toAbsolutePath(), url)
7071
return dir.resolve(binaryName)
7172
}
7273

src/test/kotlin/com/coder/gateway/settings/CoderSettingsTest.kt

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,33 @@
1-
package com.coder.gateway.services
1+
package com.coder.gateway.settings
22

3+
import com.coder.gateway.services.CoderSettingsState
34
import kotlin.test.Test
45
import kotlin.test.assertContains
56
import kotlin.test.assertEquals
67

7-
import com.coder.gateway.settings.CoderSettings
8-
import com.coder.gateway.settings.Environment
98
import com.coder.gateway.util.OS
109
import com.coder.gateway.util.getOS
1110
import com.coder.gateway.util.withPath
1211
import java.net.URL
1312
import java.nio.file.Path
1413

1514
internal class CoderSettingsTest {
15+
@Test
16+
fun testExpands() {
17+
val state = CoderSettingsState()
18+
val settings = CoderSettings(state)
19+
val url = URL("http://localhost")
20+
val home = Path.of(System.getProperty("user.home"))
21+
22+
state.binaryDirectory = "~/coder-gateway-test/expand-bin-dir"
23+
var expected = home.resolve("coder-gateway-test/expand-bin-dir/localhost")
24+
assertEquals(expected.toAbsolutePath(), settings.binPath(url).parent)
25+
26+
state.dataDirectory = "~/coder-gateway-test/expand-data-dir"
27+
expected = home.resolve("coder-gateway-test/expand-data-dir/localhost")
28+
assertEquals(expected.toAbsolutePath(), settings.dataDir(url))
29+
}
30+
1631
@Test
1732
fun testDataDir() {
1833
val state = CoderSettingsState()
@@ -162,15 +177,17 @@ internal class CoderSettingsTest {
162177
@Test
163178
fun testSettings() {
164179
// Make sure the remaining settings are being conveyed.
165-
val settings = CoderSettings(CoderSettingsState(
180+
val settings = CoderSettings(
181+
CoderSettingsState(
166182
enableDownloads = false,
167183
enableBinaryDirectoryFallback = true,
168184
headerCommand = "test header",
169185
tlsCertPath = "tls cert path",
170186
tlsKeyPath = "tls key path",
171187
tlsCAPath = "tls ca path",
172188
tlsAlternateHostname = "tls alt hostname",
173-
))
189+
)
190+
)
174191

175192
assertEquals(false, settings.enableDownloads)
176193
assertEquals(true, settings.enableBinaryDirectoryFallback)

0 commit comments

Comments
 (0)