Skip to content
Snippets Groups Projects
download_data.R 1.54 KiB
Newer Older
  • Learn to ignore specific revisions
  • SOLER Fiona's avatar
    SOLER Fiona committed
    options(repos = c(CRAN = "https://cloud.r-project.org"))
    
    # Install 'remotes' if it's not already installed
    if (!require("remotes")) {
      install.packages("remotes", dependencies = TRUE)
      library(remotes)
    }
    
    # Load necessary library and install a specific version if not present
    if (!requireNamespace("digest", quietly = TRUE)) {
      remotes::install_version("digest", version = "0.6.25", repos = "https://cloud.r-project.org")
    }
    # Load necessary library
    if (!require("digest")) install.packages("digest", dependencies = TRUE)
    library(digest)
    
    # Define variables
    # wdir="/shared/projects/2427_data_master/user/agonzalez/m2bsgreprod/src"
    wdir="."
    results_dir <- file.path(wdir, "results")
    url <- "https://d1ypx1ckp5bo16.cloudfront.net/penncath/penncath.tar.gz"
    dest_file <- file.path(results_dir, "penncath.tar.gz")
    expected_md5 <- "5d5f422aeafdd2d725ad93f447d9af4b"
    
    # Create results directory if it doesn't exist
    if (!dir.exists(results_dir)) {
      dir.create(results_dir, recursive = TRUE)
    }
    
    # Check if the file exists
    if (!file.exists(dest_file)) {
      message("File does not exist. Downloading...")
      # Download the file
      download.file(url, dest_file, method = "auto")
    } else {
      message("File already exists.")
    }
    
    # Verify the MD5 checksum
    actual_md5 <- digest(dest_file, algo = "md5", file = TRUE)
    
    if (actual_md5 == expected_md5) {
      message("MD5 checksum matches! Proceeding to extract the file...")
      
      # Uncompress the file
      untar(dest_file, exdir = results_dir)
      message("File uncompressed successfully!")
      
    } else {
      stop("MD5 checksum does not match!")
    }