Allow empty source dirs
use argparse for argument parsing