From 7a23f2b7fa00a0b488d1d8b1b43024ba5a3b69ba Mon Sep 17 00:00:00 2001 From: philwalk Date: Mon, 1 Jul 2024 00:29:19 -0600 Subject: [PATCH] fix for 2954 running script in root dir (#2988) * fix for 2954 running script in root dir * added simplification suggested by @Gedochao --- .../build/src/main/scala/scala/build/input/Inputs.scala | 9 ++++++--- modules/cli/src/main/scala/scala/cli/ScalaCli.scala | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/build/src/main/scala/scala/build/input/Inputs.scala b/modules/build/src/main/scala/scala/build/input/Inputs.scala index ee6ab79f8e..572386a179 100644 --- a/modules/build/src/main/scala/scala/build/input/Inputs.scala +++ b/modules/build/src/main/scala/scala/build/input/Inputs.scala @@ -124,6 +124,7 @@ final case class Inputs( workspace / Constants.workspaceDirName / projectName / "jar" def docJarWorkDir: os.Path = workspace / Constants.workspaceDirName / projectName / "doc" + } object Inputs { @@ -152,7 +153,7 @@ object Inputs { updatedElems, defaultMainClassElemOpt, workspace, - workspace.baseName, + baseName(workspace), mayAppendHash = needsHash, workspaceOrigin = Some(workspaceOrigin), enableMarkdown = enableMarkdown, @@ -384,7 +385,6 @@ object Inputs { } }.getOrElse((os.pwd, true, WorkspaceOrigin.Forced)) } - val (workspace, needsHash, workspaceOrigin0) = forcedWorkspace match { case None => (inferredWorkspace, inferredNeedsHash, workspaceOrigin) case Some(forcedWorkspace0) => @@ -466,7 +466,7 @@ object Inputs { elements = Nil, defaultMainClassElement = None, workspace = workspace, - baseProjectName = workspace.baseName, + baseProjectName = baseName(workspace), mayAppendHash = true, workspaceOrigin = None, enableMarkdown = enableMarkdown, @@ -475,4 +475,7 @@ object Inputs { def empty(projectName: String): Inputs = Inputs(Nil, None, os.pwd, projectName, false, None, true, false) + + def baseName(p: os.Path) = if (p == os.root) "" else p.baseName + } diff --git a/modules/cli/src/main/scala/scala/cli/ScalaCli.scala b/modules/cli/src/main/scala/scala/cli/ScalaCli.scala index 96e58eedad..377a23f54a 100644 --- a/modules/cli/src/main/scala/scala/cli/ScalaCli.scala +++ b/modules/cli/src/main/scala/scala/cli/ScalaCli.scala @@ -117,7 +117,7 @@ object ScalaCli { try main0(args) catch { case e: Throwable if !isCI && !printStackTraces => - val workspace = CurrentParams.workspaceOpt.getOrElse(os.pwd) + val workspace = CurrentParams.workspaceOpt.filter(os.isDir).getOrElse(os.pwd) val dir = workspace / Constants.workspaceDirName / "stacktraces" os.makeDir.all(dir) import java.time.Instant