Guest User

Untitled

a guest
Nov 14th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. use "cli"
  2.  
  3. actor Main
  4. new create(env: Env) =>
  5. let cs =
  6. try
  7. CommandSpec.leaf("echo", "A sample echo program", [
  8. OptionSpec.bool("upper", "Uppercase words"
  9. where short' = 'U', default' = false)
  10. ], [
  11. ArgSpec.string_seq("words", "The words to echo")
  12. ])? .> add_help()?
  13. else
  14. env.exitcode(-1) // some kind of coding error
  15. return
  16. end
  17.  
  18. let cmd =
  19. match CommandParser(cs).parse(env.args, env.vars)
  20. | let c: Command => c
  21. | let ch: CommandHelp =>
  22. ch.print_help(env.out)
  23. env.exitcode(0)
  24. return
  25. | let se: SyntaxError =>
  26. env.out.print(se.string())
  27. env.exitcode(1)
  28. return
  29. end
  30.  
  31. let upper = cmd.option("upper").bool()
  32. let words = cmd.arg("words").string_seq()
  33. for word in words.values() do
  34. env.out.write(if upper then word.upper() else word end + " ")
  35. end
  36. env.out.print("")
Add Comment
Please, Sign In to add comment