Working ProgramsInput and CLI Arguments
Blorp by Example

Input and CLI Arguments

Programs receive args and can read interactive input as Option[String].

Args

main receives command-line arguments as List[String].

args.brp
func main(args: List[String]) -> Void:
    print(args.length().to_string())

Input

input(prompt) prints a prompt and returns Option[String].

input.brp
match input("name> "):
    Some(name): print(name)
    None: print("bye")

EOF As None

Ctrl-D or EOF returns None instead of a null string.

eof.brp
match input("name> "):
    None: print("no input")
    Some(name): print(name)

Stderr

eprintln writes a line to stderr.

stderr.brp
eprintln("missing file")

Exit Codes

Return Int from main when the program needs success or failure status.

exit.brp
func main(args: List[String]) -> Int:
    print("ok")
    0

Example

greeter.brp
func main(args: List[String]) -> Int:
	shout: Bool = args.contains("--shout")
	match input("name> "):
		Some(name):
			text: String = if shout:
				name.upper()
			else:
				name
			print("Hello, " + text.trim())
			0
		None:
			eprintln("no input")
			0

Try It

terminal
blorp run greeter.brp -- --shout