handle: port already in use;
refactor code into separate files (see #3);
refactor for more declarative/functional;
use git clean -ndX, and parse stdout to get gitignore'd files/folders;