#' @export
add <- function(repo) {
invisible(lapply(repo, add_helper))
}
add_helper <- function(repo, package) {
box::use(
jsonlite[write_json, unbox],
cli[cli_h1, cli_alert, cli_alert_warning, cli_alert_success],
rlang[interrupt],
glue[glue],
. / util[get_module_list, grab_SHA, scalar],
. / install[inst = install]
)
input <- as.list(unlist(strsplit(repo, "[/@]")))
details <- list(
moduleName = scalar(unlist(input[2])),
author = scalar(unlist(input[1])),
repo = scalar(glue("https://github.com/{input[1]}/{input[2]}/")),
SHA = scalar(grab_SHA(repo))
)
package <- get_module_list()
if (!any(details$moduleName %in% package$modules$moduleName && details$author %in% package$modules$author)) {
if (NROW(package$modules) > 0) {
package$modules[nrow(package$modules) + 1, ] <- details
} else {
package$modules[1] <- list(details)
}
write_json(package, "package.json", auto_unbox = TRUE, pretty = TRUE)
cli_alert_success(
glue("'{input[2]}' added to package.json")
)
inst(repo)
} else {
cli_alert_warning(
"Package.json already contains {details$moduleName}. Run grab$upgrade to check for updates."
)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.