--- title: "mauricer demo" author: "Richèl J.C. Bilderbeek" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{mauricer demo} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ## Introduction `mauricer` is an R package to handle BEAST2 package management from R, similar to the BEAST2 package manager. ![The BEAST2 package manager](beast2_pkg_manager.png) In this vignette, we will: * List all BEAST2 packages * Install the first non-installed BEAST2 package * Verify the BEAST2 package is indeed installed * Uninstall the BEAST2 package To do so, we'll need to load `mauricer`. We'll also load `testthat` for testing: ```{r} library(mauricer) library(testthat) ``` To install BEAST2 packages, one needs * an internet connection * BEAST2 must be installed If there is no internet connection, or if BEAST2 is not installed, this vignette will be close to empty. ```{r} if (!curl::has_internet()) { print("No internet connection") } if (!beastier::is_beast2_installed()) { print("No BEAST2 installed") } ``` ## List all BEAST2 packages Use `get_beast2_pkg_names` to get a data frame with the name, version and install status of all BEAST2 packages: ```{r} if (curl::has_internet() && beastier::is_beast2_installed()) { beast2_packages <- get_beast2_pkg_names() knitr::kable(head(beast2_packages)) } ``` ## Install the first non-installed BEAST2 package Find a package that is not installed: ```{r} if (curl::has_internet() && beastier::is_beast2_installed()) { package_name <- beast2_packages[ beast2_packages$installed_version == "NA", ]$name[1] print(package_name) } ``` Install that package: ``` if (curl::has_internet() && beastier::is_beast2_installed()) { mauricerinstall::install_beast2_pkg(package_name) } ``` Note that this installation uses a non-CRAN package, called `mauricerinstall`, as installing software is against CRAN policy. ## Uninstall the BEAST2 package Use `uninstall_beast2_pkg`: ``` if (curl::has_internet() && beastier::is_beast2_installed()) { mauricerinstall::uninstall_beast2_pkg(package_name) } ``` Also this code uses a non-CRAN package, called `mauricerinstall`, as installing software is against CRAN policy.