question on interactive behavior for redshift drivers
Why is there an interactive behavior setup for Redshift? Perhaps there could be a parameter for the downloadJdbcDrivers function to automatically overwrite or skip if files are found?
for (db in dbms) {
if (db == "redshift") {
oldFiles <- list.files(pathToDriver, "Redshift")
if (length(oldFiles) > 0) {
message(sprintf("Prior JAR files have already been detected: '%s'. Do you want to delete them?", paste(oldFiles, collapse = "', '")))
if (interactive() && utils::menu(c("Yes", "No")) == 1) {
unlink(file.path(pathToDriver, oldFiles))
}
}
}
If the user is calling downloadJdbcDrivers() from the prompt, isn't it polite to ask before deleting something?
I agree that probably the non-interactive behavior (e.g. when downloadJdbcDrivers() is called for unit testing) should probably change to deleting the existing files.
It is indeed very polite, but only if you are using Redshift? Everyone else gets rude behavior? 😄
I was thinking perhaps an overwrite parameter for the function that can default to false. It can check for file.exists(file.path(pathToDriver, driverSource$fileName)) and skip if it exists or download if it doesn't.