R/install_ifnot.R

Defines functions install_ifnot

Documented in install_ifnot

#' Install Packages
#'
#' Installation d'un package s'il n'est pas déjà installé.
#'
#' @param pckg Nom du package (entre guillemets).
#' @param showMessage Indiquer si le package était déjà installé, a été installé ou ne l'as pas été.
#'
#' @return `TRUE` si le package est installé ou l'était déjà, `FALSE` s'il n'a pas été installé.
#' @importFrom crayon green
#' @export
install_ifnot <- function(pckg, showMessage = FALSE){
  if(pckg %in% rownames(installed.packages())){  # si le package est déjà installé
    if(showMessage) message(green(paste0("Le package ",pckg," déjà installé.")))  # indiquer déjà installé
    return(TRUE)  # renvoyer TRUE
  } else {  # si pas installé
    suppressAll(install.packages(pckg))  # essayé de l'installer
    if(pckg %in% rownames(installed.packages())){  # vérifier s'il l'a été
      if(showMessage) message(green(paste0("Le package ",pckg," installé avec succès.")))  # indiquer a été installé
      return(TRUE)  # renvoyer TRUE
    } else {  # si toujours pas installé
      if(showMessage) message(green(paste0("Le package ",pckg," ne s'est pas installé. Voir disponibilité.")))  # indiquer erreur
      return(FALSE)  # renvoyer FALSE
    }
  }
}
guiboucher/INESSS-inesss documentation built on April 20, 2020, 10:47 p.m.