Skip to content

Commit

Permalink
Use SCALA_CLI_CONFIG to override default config directory
Browse files Browse the repository at this point in the history
  • Loading branch information
lwronski committed Mar 9, 2023
1 parent 11c56c4 commit 7c58945
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,67 +9,68 @@ class ConfigTests extends ScalaCliSuite {
override def group: ScalaCliSuite.TestGroup = ScalaCliSuite.TestGroup.First

test("simple") {
val homeDir = os.rel / "home"
val homeEnv = Map("SCALA_CLI_HOME" -> homeDir.toString())
val name = "Alex"
val configFile = os.rel / "config" / "config.json"
val configEnv = Map("SCALA_CLI_CONFIG" -> configFile.toString())
val name = "Alex"
TestInputs.empty.fromRoot { root =>
val before =
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = homeEnv)
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = configEnv)
expect(before.out.trim().isEmpty)

os.proc(TestUtil.cli, "config", "publish.user.name", name).call(cwd = root, env = homeEnv)
val res = os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = homeEnv)
os.proc(TestUtil.cli, "config", "publish.user.name", name).call(cwd = root, env = configEnv)
val res =
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = configEnv)
expect(res.out.trim() == name)

os.proc(TestUtil.cli, "config", "publish.user.name", "--unset").call(
cwd = root,
env = homeEnv
env = configEnv
)
val after =
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = homeEnv)
os.proc(TestUtil.cli, "config", "publish.user.name").call(cwd = root, env = configEnv)
expect(after.out.trim().isEmpty)
}
}

test("password") {
val homeDir = os.rel / "home"
val homeEnv = Map("SCALA_CLI_HOME" -> homeDir.toString)
val password = "1234"
val key = "httpProxy.password"
val configFile = os.rel / "config" / "config.json"
val configEnv = Map("SCALA_CLI_CONFIG" -> configFile.toString)
val password = "1234"
val key = "httpProxy.password"
TestInputs.empty.fromRoot { root =>

def emptyCheck(): Unit = {
val value = os.proc(TestUtil.cli, "config", key)
.call(cwd = root, env = homeEnv)
.call(cwd = root, env = configEnv)
expect(value.out.trim().isEmpty)
}

def unset(): Unit =
os.proc(TestUtil.cli, "config", key, "--unset")
.call(cwd = root, env = homeEnv)
.call(cwd = root, env = configEnv)

def read(): String = {
val res = os.proc(TestUtil.cli, "config", key)
.call(cwd = root, env = homeEnv)
.call(cwd = root, env = configEnv)
res.out.trim()
}
def readDecoded(env: Map[String, String] = Map.empty): String = {
val res = os.proc(TestUtil.cli, "--power", "config", key, "--password")
.call(cwd = root, env = homeEnv ++ env)
.call(cwd = root, env = configEnv ++ env)
res.out.trim()
}

emptyCheck()

os.proc(TestUtil.cli, "config", key, s"value:$password")
.call(cwd = root, env = homeEnv)
.call(cwd = root, env = configEnv)
expect(read() == s"value:$password")
expect(readDecoded() == password)
unset()
emptyCheck()

os.proc(TestUtil.cli, "config", key, "env:MY_PASSWORD")
.call(cwd = root, env = homeEnv)
.call(cwd = root, env = configEnv)
expect(read() == "env:MY_PASSWORD")
expect(readDecoded(env = Map("MY_PASSWORD" -> password)) == password)
unset()
Expand All @@ -83,7 +84,7 @@ class ConfigTests extends ScalaCliSuite {
"env:MY_PASSWORD",
"--password-value"
)
.call(cwd = root, env = Map("MY_PASSWORD" -> password) ++ homeEnv)
.call(cwd = root, env = Map("MY_PASSWORD" -> password) ++ configEnv)
expect(read() == s"value:$password")
expect(readDecoded() == password)
unset()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ class PublishSetupTests extends ScalaCliSuite {
private def devMail = "[email protected]"
private def devUrl = "https://alex.me"

private def configSetup(homeDir: os.Path, root: os.Path): Unit = {
val envs = Map("SCALA_CLI_HOME" -> homeDir.toString)
private def configSetup(configFile: os.Path, root: os.Path): Unit = {
val envs = Map("SCALA_CLI_CONFIG" -> configFile.toString)
os.proc(TestUtil.cli, "--power", "config", "publish.user.name", devName)
.call(cwd = root, stdout = os.Inherit, env = envs)
os.proc(TestUtil.cli, "--power", "config", "publish.user.email", devMail)
Expand All @@ -46,8 +46,8 @@ class PublishSetupTests extends ScalaCliSuite {
"""object Foo
|""".stripMargin
)
private val homeDir = os.rel / "home"
private val envs = Map("SCALA_CLI_HOME" -> homeDir.toString)
private val configFile = os.rel / "config" / "config.json"
private val envs = Map("SCALA_CLI_CONFIG" -> configFile.toString)

private def gitInit(dir: os.Path): Git = {
val git = Git.init().setDirectory(dir.toIO).call()
Expand Down Expand Up @@ -99,7 +99,7 @@ class PublishSetupTests extends ScalaCliSuite {
)
val expectedGhSecrets = Set.empty[String]
testInputs.fromRoot { root =>
configSetup(root / homeDir, root)
configSetup(root / configFile, root)
gitInit(root / projDir)
val res = os.proc(TestUtil.cli, "--power", "publish", "setup", projDir).call(
cwd = root,
Expand Down Expand Up @@ -136,7 +136,7 @@ class PublishSetupTests extends ScalaCliSuite {
val expectedGhSecrets =
Set("PUBLISH_USER", "PUBLISH_PASSWORD", "PUBLISH_SECRET_KEY", "PUBLISH_SECRET_KEY_PASSWORD")
testInputs.fromRoot { root =>
configSetup(root / homeDir, root)
configSetup(root / configFile, root)
gitInit(root / projDir)
val res =
os.proc(TestUtil.cli, "--power", "publish", "setup", "--ci", "--dummy", projDir).call(
Expand Down Expand Up @@ -169,7 +169,7 @@ class PublishSetupTests extends ScalaCliSuite {
)
val expectedGhSecrets = Set.empty[String]
testInputs.fromRoot { root =>
configSetup(root / homeDir, root)
configSetup(root / configFile, root)
gitInit(root / projDir)
val res = os.proc(
TestUtil.cli,
Expand Down Expand Up @@ -211,7 +211,7 @@ class PublishSetupTests extends ScalaCliSuite {
)
val expectedGhSecrets = Set("PUBLISH_USER", "PUBLISH_PASSWORD")
testInputs.fromRoot { root =>
configSetup(root / homeDir, root)
configSetup(root / configFile, root)
gitInit(root / projDir)
val res = os.proc(
TestUtil.cli,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ class SipScalaTests extends ScalaCliSuite {

test("power config turn on power features") {
TestInputs.empty.fromRoot { root =>
val homeEnv = Map("SCALA_CLI_HOME" -> root.toString())
val homeEnv = Map("SCALA_CLI_CONFIG" -> (root / "config" / "config.json").toString())
// disable power features
os.proc(TestUtil.cli, "config", "power", "false").call(cwd = root, env = homeEnv).out.trim()
val output = os.proc(TestUtil.cli, "package").call(
Expand Down

0 comments on commit 7c58945

Please sign in to comment.