diff --git a/CHANGES.txt b/CHANGES.txt index 5db79f2b6e2b4281e3fe560db7c6080184290a4c..90d25f67cae2b55c68ed4de4dda047b7ec7b6ff0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -6,6 +6,14 @@ Make Experiments! Release Changes --------------- +Release 1.0.10 +============== + +Global +------ + +* Changed directory creation to only create parts w/o native variables + Release 1.0.9 ============= diff --git a/mkexp b/mkexp index 8e757fd58283d14614334be5d6ee8d05f6d61cf2..05acf69bb90bf31f42536646459d04100527bd12 100755 --- a/mkexp +++ b/mkexp @@ -378,6 +378,9 @@ except ExpConfigError as error: # Create target directories +def cut_dir_variable(directory): + return re.sub(os.sep + r'[^' + os.sep + r'$]*\$\{\w+\}.*$', '', directory) + # Create directory for scripts if it doesn't exist script_dir = config['SCRIPT_DIR'] print "Script directory: '"+script_dir+"'" @@ -392,20 +395,28 @@ else: # Create directory for output data if it doesn't exist data_dir = config['DATA_DIR'] -print "Data directory: '"+data_dir+"'"+(" (not created)" if not args.make_dirs else "") +data_cut = cut_dir_variable(data_dir) +print "Data directory: '"+data_dir+"'"+( + " (not created)" if not args.make_dirs else "") if args.make_dirs: - if not os.path.isdir(data_dir): - os.makedirs(data_dir) + if data_dir != data_cut: + feedback.warning("only considering non-variable part of directory") + if not os.path.isdir(data_cut): + os.makedirs(data_cut) elif not script_dir.startswith(data_dir): feedback.warning("data directory already exists") # Create directory for running the experiment if it doesn't exist work_dir = config['WORK_DIR'] +work_cut = cut_dir_variable(work_dir) if work_dir != data_dir: - print "Work directory: '"+work_dir+"'"+(" (not created)" if not args.make_dirs else "") + print "Work directory: '"+work_dir+"'"+( + " (not created)" if not args.make_dirs else "") if args.make_dirs: - if not os.path.isdir(work_dir): - os.makedirs(work_dir) + if work_dir != work_cut: + feedback.warning("only considering non-variable part of directory") + if not os.path.isdir(work_cut): + os.makedirs(work_cut) else: feedback.warning("work directory already exists")