From b8def035755042a224b46be5b468d81c82ae2039 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Mon, 10 Oct 2022 15:01:39 +0200 Subject: Atlas: added an explicit --workspace option (#20532) --- tools/atlas/atlas.nim | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'tools/atlas') diff --git a/tools/atlas/atlas.nim b/tools/atlas/atlas.nim index 2a2cf6454..274e94517 100644 --- a/tools/atlas/atlas.nim +++ b/tools/atlas/atlas.nim @@ -30,6 +30,7 @@ Options: --keepCommits do not perform any `git checkouts` --cfgHere also create/maintain a nim.cfg in the current working directory + --workspace=DIR use DIR as workspace --version show the version --help show this help """ @@ -460,7 +461,7 @@ proc main = var c = AtlasContext( projectDir: getCurrentDir(), - workspace: getCurrentDir()) + workspace: "") for kind, key, val in getopt(): case kind @@ -474,12 +475,23 @@ proc main = of "help", "h": writeHelp() of "version", "v": writeVersion() of "keepcommits": c.keepCommits = true + of "workspace": + if val.len > 0: + c.workspace = val + createDir(val) + else: + writeHelp() of "cfghere": c.cfgHere = true else: writeHelp() of cmdEnd: assert false, "cannot happen" - while c.workspace.len > 0 and dirExists(c.workspace / ".git"): - c.workspace = c.workspace.parentDir() + if c.workspace.len > 0: + if not dirExists(c.workspace): error "Workspace directory '" & c.workspace & "' not found." + else: + c.workspace = getCurrentDir() + while c.workspace.len > 0 and dirExists(c.workspace / ".git"): + c.workspace = c.workspace.parentDir() + echo "Using workspace ", c.workspace case action of "": -- cgit 1.4.1-2-gfad0