///|
fn print_summary() -> Unit {
let status = @product.prepare_moonfish_product_status()
let rehearsal = @product.prepare_product_rehearsal_report(status)
let certificate = @release.prepare_release_certificate(
@release.release_certificate_input(status, rehearsal),
)
let rollback = @rollback.prepare_rollback_window_report(
@rollback.rollback_window_input(status, certificate),
)
let operations = @operations.prepare_operations_readiness_report(
@operations.operations_report_input(status, certificate, rollback),
)
println(
"\{status.summary}; \{rehearsal.summary}; \{certificate.summary}; \{rollback.summary}; \{operations.summary}",
)
}
///|
fn print_layout(root : String, book_id : String) -> Unit {
let home = @moonfish.moonsuite_product_home_for_workspace_root(root, book_id~)
println(home.to_json().stringify(indent=2))
}
///|
fn print_usage() -> Unit {
println(if interface_is_chinese() { "用法" } else { "Usage" })
println("moon run cmd/main -- summary")
println("moon run cmd/main -- layout [workspace-root] [book-id]")
}
///|
/// Entry point for local smoke checks while MoonSuite adapters are built.
fn main {
match @env.args()[1:] {
[] | ["summary", ..] => print_summary()
["layout", root, book_id, ..] => print_layout(root, book_id)
["layout", root] => print_layout(root, "")
["layout"] => print_layout(".", "")
["help", ..] | ["--help", ..] | ["-h", ..] => print_usage()
[unknown, ..] => {
println(
if interface_is_chinese() {
"未知的 MoonFish 命令:\{unknown}"
} else {
"Unknown MoonFish command: \{unknown}"
},
)
print_usage()
}
}
}
///|
fn interface_is_chinese() -> Bool {
let raw = match @env.get_env_var("MOONSUITE_LANG") {
Some(value) => value
None =>
match @env.get_env_var("LC_ALL") {
Some(value) => value
None => @env.get_env_var("LANG").unwrap_or("en-US")
}
}
let raw = raw.to_lower()
raw.has_prefix("zh")
}