From 872f3f0560ba214d7366ae36e651c478342edc2f Mon Sep 17 00:00:00 2001
From: aheinri5 <Anna@netzkritzler.de>
Date: Sun, 21 Feb 2021 15:03:53 +0100
Subject: [PATCH] [base] write scripts to separate folders

---
 R/generate_benchmark_script.R | 51 +++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/R/generate_benchmark_script.R b/R/generate_benchmark_script.R
index 760a38d..9762d1a 100644
--- a/R/generate_benchmark_script.R
+++ b/R/generate_benchmark_script.R
@@ -32,19 +32,28 @@ ogs6_generate_benchmark_scripts <-
         script_path <- unlist(options("r2ogs6.default_script_path"))
     }
 
-    missing_read_in_gml <- missing(read_in_gml)
+    if(missing(read_in_gml)){
+        read_in_gml <- substitute()
+    }
 
     path <- as_dir_path(path)
     script_path <- as_dir_path(script_path)
     assertthat::assert_that(assertthat::is.string(starting_from_prj_path))
     assertthat::assert_that(is.character(skip_prj_paths))
-    assertthat::assert_that(assertthat::is.flag(read_in_vtu))
 
     prj_paths <- list.files(path = path,
                             pattern = "\\.prj$",
                             recursive = TRUE,
                             full.names = TRUE)
 
+    script_paths_rel <- lapply(list.files(
+        path = path,
+        pattern = "\\.prj$",
+        recursive = T,
+        full.names = F
+    ),
+    dirname)
+
     # If we know the benchmarks up to a specific file are working, skip them
     if(starting_from_prj_path != ""){
 
@@ -72,26 +81,28 @@ ogs6_generate_benchmark_scripts <-
         # cat("\nGenerating script from path", prj_paths[[i]])
 
         # Put simulations in their own subfolders under sim_path
-        sim_subdir <-
-            paste0(sim_path,
-                   basename(dirname(prj_paths[[i]])), "_",
-                   tools::file_path_sans_ext(basename(prj_paths[[i]])))
+        sim_subfolder_path <- paste0(
+            sim_path,
+            script_paths_rel[[i]],
+            "/",
+            tools::file_path_sans_ext(basename(prj_paths[[i]])))
+
+        script_subfolder_path <- paste0(script_path, script_paths_rel[[i]])
+
+        if(!dir.exists(script_subfolder_path)){
+            dir.create(script_subfolder_path,
+                       recursive = TRUE)
+        }
 
         out<- tryCatch(
             {
-                if(missing_read_in_gml){
-                    ogs6_generate_benchmark_script(prj_path = prj_paths[[i]],
-                                              sim_path = sim_subdir,
-                                              script_path = script_path,
-                                              read_in_vtu = read_in_vtu)
-                }else{
-                    ogs6_generate_benchmark_script(prj_path = prj_paths[[i]],
-                                              sim_path = sim_subdir,
-                                              script_path = script_path,
-                                              read_in_gml = read_in_gml,
-                                              read_in_vtu = read_in_vtu)
-                }
-
+                ogs6_generate_benchmark_script(
+                    prj_path = prj_paths[[i]],
+                    sim_path = sim_subfolder_path,
+                    script_path = script_subfolder_path,
+                    read_in_gml = read_in_gml,
+                    read_in_vtu = read_in_vtu
+                )
             },
             error = function(cond){
                 message(paste("\nogs6_generate_benchmark_script() failed for",
@@ -237,7 +248,7 @@ ogs6_generate_benchmark_script <- function(prj_path,
             dir.create(script_path, showWarnings = FALSE)
         }
 
-        filename <- paste0(script_path, sim_name, ".R")
+        filename <- paste0(script_path, "/", sim_name, ".R")
 
         if(file.exists(filename)){
             filename <- paste0(script_path,
-- 
GitLab