Added verbosity, include paths, and using getopt

It is reasonable to expect args[0] is valid, but the if condition should match that.  The condition just seems strange to me, because if you're assuming length to be >= 1 then it should just be `args.length == 1`, preferably with an `assert(args.length);` somewhere.