///|
fn print_help() -> Unit {
println("VoltWeave " + @core.version)
println("Usage: voltweave ")
println("")
println("Commands:")
println(" demo optimized household plan as Markdown")
println(" compact apartment plan without solar or battery")
println(" outage storm-outage plan and energy timeline")
println(" compare preferred-time baseline comparison")
println(" simulate 40-run deterministic uncertainty report")
println(" validate validation report for the household example")
println(" json optimized household result as JSON")
println(" input household input contract as JSON")
println(" chart terminal-friendly household load chart")
println(" help show this message")
}
///|
fn main {
let args = @env.args()
if args.length() < 2 {
print_help()
return
}
match args[1] {
"help" | "--help" | "-h" => print_help()
"demo" =>
println(@core.plan_markdown(@core.solve(@core.home_day_example())))
"compact" =>
println(
@core.plan_markdown(@core.solve(@core.compact_apartment_example())),
)
"outage" => {
let result = @core.solve(@core.storm_outage_example())
println(@core.plan_markdown(result))
println(@core.plan_timeline(result))
}
"compare" =>
println(
@core.comparison_markdown(
@core.compare_with_baseline(@core.home_day_example()),
),
)
"simulate" =>
println(
@core.simulation_markdown(
@core.simulate(@core.storm_outage_example(), runs=40),
),
)
"validate" =>
println(
@core.validation_markdown(@core.validate(@core.home_day_example())),
)
"json" => println(@core.solve(@core.home_day_example()).to_json_string())
"input" => println(@core.home_day_example().to_json_string())
"chart" =>
println(@core.plan_ascii_chart(@core.solve(@core.home_day_example())))
command => {
println("Unknown command: " + command)
print_help()
}
}
}