refactor dry_run a little, add a 'skip existing files' case too.