Add version command
Use case statement for argument parsing
Move .PHONY to bottom
Indent usage
Handle invalid options
Always show output on failure