I'm sure there's some module out there. - should support shortcuts (i.e. -u vs --username, -c vs --continue) - display error message on unrecognized args - display error message on unspecified required args