Add directory argument support

You can now pass either a directory or a file path as the first argument to the script, i.e. <source_data>.

Closes #1