///|
#cfg(target="js")
fn cli_prefix() -> Int32 {
2
}
///|
#cfg(not(target="js"))
fn cli_prefix() -> Int32 {
1
}
///|
fn main {
let raw = @env.args()
let start = cli_prefix().min(raw.length())
let args = raw[start:].to_owned()
if args.length() == 0 || args[0] == "help" {
println(@cutstock.help_text())
} else if args[0] == "demo" {
let p = @cutstock.problem(
[@cutstock.demand("beam", "wood", 40, 4)],
[
@cutstock.stock("short", "wood", 85, 7, 1),
@cutstock.stock("long", "wood", 130, 12, -1),
],
kerf=2,
min_remnant=5,
).unwrap()
println(@cutstock.text_report(p, @cutstock.solve(p).unwrap()).unwrap())
} else {
if args.length() < 2 {
abort("mooncutstock: missing input document argument")
}
let options = args[2:].to_owned()
match @cutstock.run_command(args[0], args[1], args=options) {
Ok(text) => println(text)
Err(e) => abort("mooncutstock: " + e)
}
}
}