Args
Parse command-line arguments.
Functions
Args.get(name: string) -> string
Returns the value of a named flag. Supports --name=value and --name value formats.
wyn
var host = Args.get("host") // --host=localhost or --host localhost
var port = Args.get("port") // --port=8080 or --port 8080
println("Connecting to " + host + ":" + port)Returns "" if the flag is not present.
Args.has(name: string) -> bool
Returns true if a flag is present.
wyn
if Args.has("verbose") {
println("Verbose mode enabled")
}
// Also matches single-letter flags
if Args.has("v") { // matches -v
println("Verbose")
}Args.positional() -> array
Returns non-flag arguments as an array.
wyn
// wyn run app.wyn -- file1.txt file2.txt --verbose
var files = Args.positional() // ["file1.txt", "file2.txt"]
for f in files {
println("Processing: " + f)
}Example: CLI Tool
wyn
var name = Args.get("name")
var count = Args.get("count")
var loud = Args.has("loud")
if name == "" {
println("Usage: greet --name <name> [--count N] [--loud]")
} else {
var n = if count != "" { count.to_int() } else { 1 }
for i in 0..n {
var msg = "Hello, " + name + "!"
if loud {
println(msg.upper())
} else {
println(msg)
}
}
}TIP
Arguments are only available when running the compiled binary directly. wyn run does not forward arguments after -- to the program.