summaryrefslogtreecommitdiff
path: root/src/SomhairlesDream.Cli/Arguments.fs
diff options
context:
space:
mode:
Diffstat (limited to 'src/SomhairlesDream.Cli/Arguments.fs')
-rw-r--r--src/SomhairlesDream.Cli/Arguments.fs32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/SomhairlesDream.Cli/Arguments.fs b/src/SomhairlesDream.Cli/Arguments.fs
index fa9087b..c1c7bff 100644
--- a/src/SomhairlesDream.Cli/Arguments.fs
+++ b/src/SomhairlesDream.Cli/Arguments.fs
@@ -21,7 +21,7 @@ module Arguments =
let usage =
"usage: dotnet run --project src/SomhairlesDream.Cli -- run [options]\n"
+ " dotnet run --project src/SomhairlesDream.Cli -- verify <manifest.json>\n"
- + "options: --project-id --run-id --base-id --target-id --output-root --stage-root --python --render --design heritage|probe"
+ + "options: --project-id --run-id --base-id --target-id --output-root --stage-root --python --render --design heritage|probe|ship"
let private defaultPython () =
let configured = Environment.GetEnvironmentVariable("SOMHAIRLES_BPYTHON")
@@ -39,6 +39,12 @@ module Arguments =
BaseId = "probe-base-000"
TargetId = "probe-target-007" }
+ let private shipIds =
+ { ProjectId = "ship-001"
+ RunId = "run-001"
+ BaseId = "ship-base-000"
+ TargetId = "ship-target-007" }
+
let private defaults () =
{ Ids = heritageIds
OutputRoot = ".artifacts"
@@ -66,21 +72,27 @@ module Arguments =
| _ -> Error $"unknown option: {optionName}"
let private resolveIds (options: RunOptions) =
- if options.Design = "probe" then
- let swap heritage probe value = if value = heritage then probe else value
+ if options.Design = "heritage" then
+ options
+ else
+ let designIds =
+ match options.Design with
+ | "probe" -> probeIds
+ | "ship" -> shipIds
+ | _ -> heritageIds
+
+ let swap heritage design value = if value = heritage then design else value
let ids =
- { ProjectId = swap heritageIds.ProjectId probeIds.ProjectId options.Ids.ProjectId
- RunId = swap heritageIds.RunId probeIds.RunId options.Ids.RunId
- BaseId = swap heritageIds.BaseId probeIds.BaseId options.Ids.BaseId
- TargetId = swap heritageIds.TargetId probeIds.TargetId options.Ids.TargetId }
+ { ProjectId = swap heritageIds.ProjectId designIds.ProjectId options.Ids.ProjectId
+ RunId = swap heritageIds.RunId designIds.RunId options.Ids.RunId
+ BaseId = swap heritageIds.BaseId designIds.BaseId options.Ids.BaseId
+ TargetId = swap heritageIds.TargetId designIds.TargetId options.Ids.TargetId }
{ options with Ids = ids }
- else
- options
let private validateRunOptions (options: RunOptions) =
- if options.Design <> "heritage" && options.Design <> "probe" then
+ if options.Design <> "heritage" && options.Design <> "probe" && options.Design <> "ship" then
Error $"invalid design: {options.Design}"
else
let resolved = resolveIds options