Improved documentation, removed  as an option and always defaulted to 1.
Removed 'error' text from error logger.
Added node to getManifests().
Generated node Error instead of just sending back a string when an error is encountered.
Handled variable declaration nicer.
Dynanically created mysql root password and passed it to puppet via factor variable.
Fixed program options.
Threw error instead of just console.logging it.
Added MySQL root password to output if mysql was requested.
Added async module.
Specified puppet path more.
Implemented async to handle control flow of additional setup tasks (like puppet). This will make it a million times easier to add stuff in the future.
Default manifest is now always run.
Revised when databases are added as a factor variable to puppet apply.
Running multiple manifests was giving me a lot of trouble (tasks were running multiple times, very slow), so I decided to just create and SCP a custom manifest based on the requested modules. This is a LOT faster.
Fixed var name error.
Added some documentation.
Printed out a summary at the very end.