Skip to content

Commit

Permalink
Merge pull request #1719 from scala-steward-org/topic/change-default-…
Browse files Browse the repository at this point in the history
…of-disableSandbox

Change default value of --disable-sandbox
  • Loading branch information
fthomas committed Nov 6, 2020
2 parents 2b37338 + d996533 commit 6b4b1dc
Show file tree
Hide file tree
Showing 8 changed files with 14 additions and 15 deletions.
1 change: 0 additions & 1 deletion build.sbt
Expand Up @@ -260,7 +260,6 @@ lazy val dockerSettings = Def.settings(
},
Docker / packageName := s"fthomas/${name.value}",
dockerUpdateLatest := true,
dockerEntrypoint += "--disable-sandbox",
dockerEnvVars := Map("PATH" -> "/opt/docker/sbt/bin:${PATH}")
)

Expand Down
5 changes: 1 addition & 4 deletions docs/running.md
Expand Up @@ -15,8 +15,6 @@ sbt stage
--env-var FOO=BAR
```

> If [Firejail](https://firejail.wordpress.com/) is not available locally, the option `--disable-sandbox` can be used (not recommended for production environment).
Or as a [Docker](https://www.docker.com/) container:

```bash
Expand Down Expand Up @@ -90,7 +88,7 @@ example1.realm=Example Realm
```
sbt
project core
run --disable-sandbox --do-not-fork --workspace "/path/workspace" --repos-file "/path/repos.md" --default-repo-conf "/path/default.scala-steward.conf" --git-ask-pass "/path/pass.sh" --git-author-email "email@example.org" --vcs-type "gitlab" --vcs-api-host "https://gitlab.com/api/v4/" --vcs-login "gitlab.steward"
run --do-not-fork --workspace "/path/workspace" --repos-file "/path/repos.md" --default-repo-conf "/path/default.scala-steward.conf" --git-ask-pass "/path/pass.sh" --git-author-email "email@example.org" --vcs-type "gitlab" --vcs-api-host "https://gitlab.com/api/v4/" --vcs-login "gitlab.steward"
```


Expand Down Expand Up @@ -167,7 +165,6 @@ check:
- ln -sfT "$CI_PROJECT_DIR/.ivy2" "$HOME/.ivy2"
- >-
/opt/docker/bin/scala-steward
--disable-sandbox
--workspace "$CI_PROJECT_DIR/workspace"
--process-timeout 30min
--do-not-fork
Expand Down
Expand Up @@ -40,7 +40,8 @@ object Cli {
signCommits: Boolean = false,
whitelist: List[String] = Nil,
readOnly: List[String] = Nil,
disableSandbox: Boolean = false,
enableSandbox: Option[Boolean] = None,
disableSandbox: Boolean = true,
doNotFork: Boolean = false,
ignoreOptsFiles: Boolean = false,
envVar: List[EnvVar] = Nil,
Expand Down
Expand Up @@ -91,7 +91,7 @@ object Config {
final case class SandboxCfg(
whitelistedDirectories: List[String],
readOnlyDirectories: List[String],
disableSandbox: Boolean
enableSandbox: Boolean
)

final case class ScalafixCfg(
Expand All @@ -118,7 +118,7 @@ object Config {
sandboxCfg = SandboxCfg(
whitelistedDirectories = args.whitelist,
readOnlyDirectories = args.readOnly,
disableSandbox = args.disableSandbox
enableSandbox = args.enableSandbox.getOrElse(args.disableSandbox)
)
),
scalafixCfg = ScalafixCfg(
Expand Down
Expand Up @@ -71,10 +71,10 @@ object ProcessAlg {
}

def fromExecImpl[F[_]](config: ProcessCfg)(execImpl: Args => F[List[String]]): ProcessAlg[F] =
if (config.sandboxCfg.disableSandbox)
new NoSandbox[F](config)(execImpl)
else
if (config.sandboxCfg.enableSandbox)
new WithFirejail[F](config)(execImpl)
else
new NoSandbox[F](config)(execImpl)

def create[F[_]](blocker: Blocker, config: ProcessCfg)(implicit
contextShift: ContextShift[F],
Expand Down
Expand Up @@ -28,8 +28,8 @@ class ProcessAlgTest extends AnyFunSuite with Matchers {
.unsafeRunSync()
}

test("execSandboxed: echo with disableSandbox = true") {
val cfg = ProcessCfg(Nil, Duration.Zero, SandboxCfg(Nil, Nil, disableSandbox = true))
test("execSandboxed: echo with enableSandbox = false") {
val cfg = ProcessCfg(Nil, Duration.Zero, SandboxCfg(Nil, Nil, enableSandbox = false))
val state = MockProcessAlg
.create(cfg)
.execSandboxed(Nel.of("echo", "hello"), File.temp)
Expand All @@ -43,8 +43,8 @@ class ProcessAlgTest extends AnyFunSuite with Matchers {
)
}

test("execSandboxed: echo with disableSandbox = false") {
val cfg = ProcessCfg(Nil, Duration.Zero, SandboxCfg(Nil, Nil, disableSandbox = false))
test("execSandboxed: echo with enableSandbox = true") {
val cfg = ProcessCfg(Nil, Duration.Zero, SandboxCfg(Nil, Nil, enableSandbox = true))
val state = MockProcessAlg
.create(cfg)
.execSandboxed(Nel.of("echo", "hello"), File.temp)
Expand Down
Expand Up @@ -42,6 +42,7 @@ object MockContext {
vcsApiHost = Uri(),
vcsLogin = "bot-doe",
gitAskPass = File.temp / "askpass.sh",
enableSandbox = Some(true),
envVar = List(
EnvVar("VAR1", "val1"),
EnvVar("VAR2", "val2")
Expand Down
1 change: 1 addition & 0 deletions scripts/run.sh
Expand Up @@ -29,6 +29,7 @@ COMMON_ARGS=(
--git-author-email "me@$LOGIN.org"
--vcs-login "$LOGIN"
--ignore-opts-files
--enable-sandbox
--env-var "SBT_OPTS=-Xmx2048m -Xss8m -XX:MaxMetaspaceSize=512m"
--sign-commits
--cache-ttl 6hours
Expand Down

0 comments on commit 6b4b1dc

Please sign in to comment.