R/tag.R

Defines functions tag_release

#' @export
tag_release <- function(pkg = ".") {
    pkg <- devtools:::as.package(pkg)
    release_file <- file.path(pkg$path, "CRAN-RELEASE")
    if (!file.exists(release_file)) {
        cat("CRAN-RELEASE file not found\n")
        return(invisible())
    }
    line <- readLines(release_file)[2]
    match <- regexec("commit ([a-z0-9]+)", line)
    sha <- regmatches(line, match)[[1]][2]
    if (is.na(sha)) {
        cat("Cannot parse CRAN-RELEASE\n")
        return(invisible())
    }
    semver <- stringr::str_extract(paste0("v", pkg$version), "v[0-9]+\\.[0-9]+\\.[0-9]+")[[1]]
    if (devtools:::yesno(glue::glue("tag {sha} as {semver}"))) {
        return(invisible())
    }
    tag_sha <- gert::git_tag_create(semver, message = semver, ref = sha, repo = pkg$path)
    file.remove(release_file)
    invisible(tag_sha)
}
randy3k/sublimetext documentation built on April 8, 2020, 2:22 a.m.