daDoctoR/updatePackageVersion.R

35 lines
1.2 KiB
R
Raw Normal View History

2018-10-10 15:13:23 +02:00
updatePackageVersion <- function(packageLocation ="."){
2018-10-11 08:42:14 +02:00
## Seen at: https://www.mango-solutions.com/blog/how-to-auto-update-a-package-version-number
2018-10-10 15:13:23 +02:00
## Read DESCRIPTION file
desc <- readLines(file.path(packageLocation, "DESCRIPTION"))
## Find the line where the version is defined
vLine <- grep("^Version\\:", desc)
## Extract version number
vNumber <- gsub("^Version\\:\\s*", "", desc[vLine])
## Split the version number into two; a piece to keep, a piece to increment
versionNumber <- strsplit(vNumber, "\\.")[[1]]
versionParts <- length(versionNumber)
vNumberKeep <- paste(versionNumber[1:(versionParts-1)], sep= "", collapse= ".")
vNumberUpdate <- versionNumber[versionParts]
## Replace old version number with new one (increment by 1)
oldVersion <- as.numeric(vNumberUpdate)
newVersion <- oldVersion + 1
## Build final version number
vFinal <- paste(vNumberKeep, newVersion, sep = ".")
## Update DESCRIPTION file (in R)
desc[vLine] <- paste0("Version: ", vFinal )
## Update the actual DESCRIPTION file
writeLines(desc, file.path(packageLocation, "DESCRIPTION"))
## Return the updated version number to screen
return(vFinal)
}