Skip to content

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.

MIT License