Console Commands
2023-07-26
When implementing command line options for my HTTP server project, I could have just put a couple
if statements and called it a day since I only need two options: -p and -r .
I decided against this and instead, I made a nice abstraction for adding options in general. In a separate package called commandparser,
I created a class that makes it possible to simply call addCommand(name,defaultValue) to add a command which
will be added to a hashmap and updated once parseTokens(tokens) is called. It is also possible to add
a usage message to a command with the addUsage(command,message) method. This makes it so that if there is an
error when parsing the tokens, it will throw a BadUsageException with the usage message for the token that it found the error.
For example, if I addCommand("-p",80) and then addUsage("-p","-p , if there is an error parsing the port (like if the value given is not a number),
then it will throw and error with the message "Bad Usage of -p. Usage: -p . The same goes for the root directory. This
way it will be easy to add more commands in the future if needed.