#' Creating a PROJECT_LOG when a new project is started
#' @import somersaulteR
#' @import dplyr
#' @import mirroR
#' @export
unveil_project_log <-
function() {
if (!(file.exists("project_log_00.R"))) {
if (!(file.exists("PROJECT_LOG.RData"))) {
unbox_project_log()
}
}
else {
typewriteR::tell_me("Ready to source project_log_00?")
typewriteR::stop_and_enter()
source("project_log_00.R", local = TRUE)
PROJECT_LOG_ID <<- "00"
df_skeleton <- create_log_dataframe()
df_skeleton <- somersaulteR::mutate_new_cols_if_not_exist_by_robj_name(df_skeleton,
"^PROJECT_LOG_")
robj_names <- colnames(df_skeleton)
for (i in 1:length(robj_names)) {
robj_name <- robj_names[i]
if (exists(robj_name)) {
column_name <- robj_name
df_skeleton[1, column_name] <- get(robj_name)
}
}
new_log_df <- df_skeleton %>% dplyr::mutate(PROJECT_LOG_TIMESTAMP = mirroR::get_timestamp()) %>%
somersaulteR::call_mr_clean()
plant_directory_tree(input_dir_names = INPUT_DIR_NAMES,
output_dir_names = OUTPUT_DIR_NAMES)
dirs_to_log <- c(INPUT_DIR_NAMES, OUTPUT_DIR_NAMES)
new_log_df2 <- list()
for (i in 1:length(dirs_to_log)) {
new_log_df2[[i]] <-
new_log_df %>%
dplyr::mutate(PROJECT_LOG_DIR = dirs_to_log[i])
}
new_log_df2 <- dplyr::bind_rows(new_log_df2)
PROJECT_LOG <- list(CURRENT = list(),
HISTORY = list())
for (i in 1:length(dirs_to_log)) {
dir_to_log <- dirs_to_log[i]
PROJECT_LOG[["HISTORY"]][[i]] <- list()
names(PROJECT_LOG[["HISTORY"]])[i] <- dirs_to_log[[i]]
PROJECT_LOG[["HISTORY"]][[i]][[1]] <- new_log_df2 %>%
dplyr::filter(row_number() == i)
names(PROJECT_LOG[["HISTORY"]][[i]])[1] <- mirroR::get_timestamp()
}
refresh_current_project_log()
assign("PROJECT_LOG", PROJECT_LOG, envir = globalenv())
saveRDS(PROJECT_LOG, "PROJECT_LOG.RData")
if (!(file.exists("PROJECT_LOG.csv"))) {
readr::write_csv(new_log_df2, "PROJECT_LOG.csv")
}
garbage_can <- c("PROJECT_LOG_ID", "INPUT_DIR_NAMES", "OUTPUT_DIR_NAMES")
for (i in 1:length(garbage_can)) {
if (exists(garbage_can[i], envir = globalenv())) {
rm(list = garbage_can[i], envir = globalenv())
}
}
file.remove("project_log_00.R")
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.