R/write_csv_to_desktop.R

Defines functions write_csv_to_desktop

Documented in write_csv_to_desktop

#' Writes csv with overwrite/append options to Desktop
#' @param csv_basename basename without file extension of the output file
#' @param timestamp    TRUE if a "_YYYY-MM-DD HH:MM:SS" timestamp is desired in the output filename
#' @importFrom readr write_csv
#' @export
#'
write_csv_to_desktop <-
        function(dataframe, csv_basename, timestamp = TRUE) {
                path_folder <- "/Users/meerapatel/Desktop"
                mirroR::dir_create_if_not_exist(path_folder)

                if (timestamp == FALSE) {
                        fn <- mirroR::create_path_to_file(path_folder = path_folder,
                                            basename = csv_basename,
                                            file_extension = "csv")
                } else {
                        fn <- mirroR::create_path_to_file(path_folder = path_folder,
                                                  basename = paste0(csv_basename, "_", mirroR::get_timestamp()),
                                                  file_extension = "csv")
                }

                if (!(file.exists(fn))) {
                                readr::write_csv(dataframe, fn)
                                typewriteR::tell_me("Finished writing ", fn, ".")
                } else {
                                typewriteR::tell_me(fn, " already exists!")

                                df <- typewriteR::create_menu(data.frame(SELECT = c("overwrite", "append", "rename this file")))

                                ans <- typewriteR::pick_menu_item(df)
                                ans <- ans$SELECT[1]

                                if (ans == "overwrite") {
                                        typewriteR::tell_me("WARNING:", fn, "will now be overwritten!")
                                        typewriteR::stop_and_enter()
                                        readr::write_csv(dataframe, fn)
                                } else if (ans == "append") {
                                        typewriteR::tell_me("WARNING:", fn, "will now be appended!")
                                        typewriteR::stop_and_enter()
                                        projektoR::append_csv(csv_fn = fn, dataframe = dataframe)
                                } else {
                                        typewriteR::tell_me("Please enter another filename other than", fn, ".")
                                        fn <- readline("New full_file_path: ")

                                        if (!(file.exists(fn))) {
                                                readr::write_csv(dataframe, fn)
                                        } else {
                                                typewriteR::tell_me(fn, "also exists. Please try again.")
                                        }
                                }
                }
        }
patelm9/projektoR documentation built on Dec. 18, 2019, 5:55 a.m.