Small dependency-free command line argument parser for MoonBit.
moon add cauchyQ/moonbit-argkit@0.1.0moon check
moon test
moon run cmd/demolet args = ["--input", "data.txt", "-v", "row1"]
debug_inspect(has(args, "verbose", "v"), content="true")
debug_inspect(value(args, "input", "i"), content="Some(\"data.txt\")")
debug_inspect(value_or(args, "output", "o", "out.txt"), content="out.txt")
debug_inspect(
positionals(args, ["input"], ["i"], ["verbose"], ["v"]),
content="[\"row1\"]",
)let args = ["--input=data.txt", "-v", "row1"]
debug_inspect(
validation_report(
args,
["input"],
["i"],
["input"],
["i"],
["verbose"],
["v"],
),
content="\"ok\"",
)
debug_inspect(
parse_summary(args, ["input"], ["i"], ["verbose"], ["v"]),
content="[\"value:input=data.txt\", \"flag:verbose=true\", \"arg:row1\"]",
)println(help_text(
"demo",
"read rows from an input file",
["input", "output"],
["i", "o"],
["input file", "output file"],
["verbose"],
["v"],
["print extra logs"],
))Small dependency-free command line argument parser for MoonBit.