uninstall.R

# The script uninstalls RAVE

# Removes cached files
clear_dir <- function(dir) {
  try({
    if(length(dir) != 1) { return() }
    if(is.na(dir)) { return() }
    if(!dir.exists(dir)) { return() }
    cat("Clearing ", dir, "\n")
    unlink(dir, recursive = TRUE)
  }, silent = TRUE)
}

tryCatch({
  raveio::clear_cached_files()
}, error = function() {
  clear_dir('~/rave_data/cache_dir/')
  clear_dir(tools::R_user_dir('raveio', "cache"))
  try({
    clear_dir(raveio::cache_root())
  }, silent = TRUE)
  
  ravetools_path <- file.path(
    getOption(
      x = "ravetools.tempdir",
      default = Sys.getenv(
        x ="RAVETOOLS_TEMPDIR",
        unset = tempdir(check = FALSE)
      )
    ),
    "ravetools"
  )
  if(isTRUE(dir.exists(ravetools_path))) {
    unlink(ravetools_path, recursive = TRUE)
  }
})

# Remove templates
clear_dir(raveio::raveio_getopt("module_root_dir"))
clear_dir(threeBrain::default_template_directory())

# Remove packages
libs <- .libPaths()
pkgs <- c("ravebuiltins", "rave", "ravedash", "raveio", "threeBrain")
for(pkg in pkgs) {
  for(lib in libs) {
    try(silent = TRUE, {
      detach(sprintf("package:%s", pkg), unload = TRUE)
    })
    try(silent = TRUE, {
      unloadNamespace(pkg)
    })
    try(silent = TRUE, {
      utils::remove.packages(pkg, lib = lib)
    })
  }
}


# Remove data files
clear_dir(tools::R_user_dir('shidashi', "data"))
clear_dir(tools::R_user_dir('ravedash', "data"))
clear_dir(tools::R_user_dir('threeBrain', "data"))
clear_dir(tools::R_user_dir('raveio', "data"))

# Remove configurations
clear_dir(tools::R_user_dir('raveio', "config"))
clear_dir(tools::R_user_dir('rpymat', "config"))
beauchamplab/rave documentation built on Feb. 23, 2024, 7:20 a.m.