Skip to content

Commit

Permalink
DESCRIPTIONfileFromModule
Browse files Browse the repository at this point in the history
  • Loading branch information
Eliot McIntire committed Jun 8, 2024
1 parent 9e51f29 commit 54785c0
Showing 1 changed file with 127 additions and 50 deletions.
177 changes: 127 additions & 50 deletions R/convertToPackage.R
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,126 @@ makeActiveBinding('Par', SpaDES.core:::activeParBindingFunction, ",

# cat(format(aa[[whDefModule]]), file = mainModuleFile, sep = "\n")
md <- aa[[whDefModule]][[3]]
deps <- unlist(eval(md$reqdPkgs))


dFile <- DESCRIPTIONfileFromModule(module, md, deps, hasNamespaceFile, NAMESPACEFile, filePathImportSpadesCore,
packageFolderName)
# d <- list()
# d$Package <- .moduleNameNoUnderscore(module)
# d$Type <- "Package"
#
# d$Title <- md$name
# d$Description <- md$description
# d$Version <- as.character(eval(md$version[[2]]))
# d$Date <- Sys.Date()
# d$Authors <- md$authors
# d$Authors <- c(paste0(" ", format(d$Authors)[1]), format(d$Authors)[-1])
#
#
# hasSC <- grepl("SpaDES.core", deps)
# if (all(!hasSC))
# deps <- c("SpaDES.core", deps)
#
# d$Imports <- Require::extractPkgName(deps)
# versionNumb <- Require::extractVersionNumber(deps)
# hasVersionNumb <- !is.na(versionNumb)
# inequality <- paste0("(", gsub("(.+)\\((.+)\\)", "\\2", deps[hasVersionNumb]), ")")
# missingSpace <- !grepl("[[:space:]]", inequality)
# if (any(missingSpace))
# inequality[missingSpace] <- gsub("([=><]+)", "\\1 ", inequality[missingSpace])
#
# namespaceImports <- d$Imports
# # Create "import all" for each of the packages, unless it is already in an @importFrom
# if (hasNamespaceFile) {
# nsTxt <- readLines(NAMESPACEFile)
# hasImportFrom <- grepl("importFrom", nsTxt)
# if (any(hasImportFrom)) {
# pkgsNotNeeded <- unique(gsub(".+\\((.+)\\,.+\\)", "\\1", nsTxt[hasImportFrom]))
# namespaceImports <- grep(paste(pkgsNotNeeded, collapse = "|"),
# namespaceImports, invert = TRUE, value = TRUE)
# }
# }
#
# cat(paste0("#' @import ", namespaceImports, "\nNULL\n"), sep = "\n",
# file = filePathImportSpadesCore, fill = TRUE)
#
# d$Imports[hasVersionNumb] <- paste(d$Imports[hasVersionNumb], inequality)
#
# dFile <- filenameFromFunction(packageFolderName, "DESCRIPTION", fileExt = "")
#
# cat(paste("Package:", d$Package), file = dFile, sep = "\n")
# cat(paste("Type:", d$Type), file = dFile, sep = "\n", append = TRUE)
# cat(paste("Title:", d$Title), file = dFile, sep = "\n", append = TRUE)
# cat(paste("Version:", d$Version), file = dFile, sep = "\n", append = TRUE)
# cat(paste("Description:", paste(d$Description, collapse = " ")), file = dFile, sep = "\n", append = TRUE)
# cat(paste("Date:", d$Date), file = dFile, sep = "\n", append = TRUE)
# cat(c("Authors@R: ", format(d$Authors)), file = dFile, sep = "\n", append = TRUE)
#
# if (length(d$Imports))
# cat(c("Imports:", paste(" ", d$Imports, collapse = ",\n")), sep = "\n", file = dFile, append = TRUE)
#
# Suggests <- c('knitr', 'rmarkdown')
# cat(c("Suggests:", paste(" ", Suggests, collapse = ",\n")), sep = "\n", file = dFile, append = TRUE)
#
# cat("Encoding: UTF-8", sep = "\n", file = dFile, append = TRUE)
# cat("License: GPL-3", sep = "\n", file = dFile, append = TRUE)
# cat("VignetteBuilder: knitr, rmarkdown", sep = "\n", file = dFile, append = TRUE)
# cat("ByteCompile: yes", sep = "\n", file = dFile, append = TRUE)
# cat("Roxygen: list(markdown = TRUE)", sep = "\n", file = dFile, append = TRUE)
#
#
# message("New/updated DESCRIPTION file is: ", dFile)

if (isTRUE(buildDocuments)) {
message("Building documentation")
m <- packageFolderName
roxygen2::roxygenise(m, roclets = NULL) # This builds documentation, but also exports all functions ...
pkgload::dev_topic_index_reset(m)
pkgload::unload(.moduleNameNoUnderscore(basename2(m))) # so, unload here before reloading without exporting
}

RBuildIgnoreFile <- filenameFromFunction(packageFolderName, "", fileExt = ".Rbuildignore")
cat("^.*\\.Rproj$
^\\.Rproj\\.user$
^_pkgdown\\.yml$
.*\\.tar\\.gz$
.*\\.toc$
.*\\.zip$
^\\.lintr$
CONTRIBUTING\\.md
cran-comments\\.md
^docs$
^LICENSE$
vignettes/.*_cache$
vignettes/.*\\.log$
^\\.httr-oauth$
^revdep$
^\\.github$
^codecov\\.yml$
^CRAN-RELEASE$
^data/*
^.git
^.gitignore
^.gitmodules
", sep = "\n",
file = RBuildIgnoreFile, fill = TRUE)

return(invisible())
}

filenameFromFunction <- function(packageFolderName, fn = "", subFolder = "", fileExt = ".R") {
normPath(file.path(packageFolderName, subFolder, paste0(gsub("\\.", "", fn), fileExt)))
}

filenameForMainFunctions <- function(module, modulePath = ".")
normPath(file.path(modulePath, unlist(module), "R", paste0(unlist(basename(module)), "Fns.R")))




DESCRIPTIONfileFromModule <- function(module, md, deps, hasNamespaceFile, NAMESPACEFile, filePathImportSpadesCore,
packageFolderName) {
d <- list()
d$Package <- .moduleNameNoUnderscore(module)
d$Type <- "Package"
Expand All @@ -244,7 +364,12 @@ makeActiveBinding('Par', SpaDES.core:::activeParBindingFunction, ",
d$Date <- Sys.Date()
d$Authors <- md$authors
d$Authors <- c(paste0(" ", format(d$Authors)[1]), format(d$Authors)[-1])
deps <- unlist(eval(md$reqdPkgs))


hasSC <- grepl("SpaDES.core", deps)
if (all(!hasSC))
deps <- c("SpaDES.core", deps)

d$Imports <- Require::extractPkgName(deps)
versionNumb <- Require::extractVersionNumber(deps)
hasVersionNumb <- !is.na(versionNumb)
Expand All @@ -270,10 +395,6 @@ makeActiveBinding('Par', SpaDES.core:::activeParBindingFunction, ",

d$Imports[hasVersionNumb] <- paste(d$Imports[hasVersionNumb], inequality)

hasSC <- grepl("SpaDES.core", d$Imports)
if (all(!hasSC))
d$Imports <- c("SpaDES.core", d$Imports)

dFile <- filenameFromFunction(packageFolderName, "DESCRIPTION", fileExt = "")

cat(paste("Package:", d$Package), file = dFile, sep = "\n")
Expand All @@ -295,50 +416,6 @@ makeActiveBinding('Par', SpaDES.core:::activeParBindingFunction, ",
cat("VignetteBuilder: knitr, rmarkdown", sep = "\n", file = dFile, append = TRUE)
cat("ByteCompile: yes", sep = "\n", file = dFile, append = TRUE)
cat("Roxygen: list(markdown = TRUE)", sep = "\n", file = dFile, append = TRUE)


message("New/updated DESCRIPTION file is: ", dFile)

if (isTRUE(buildDocuments)) {
message("Building documentation")
m <- packageFolderName
roxygen2::roxygenise(m, roclets = NULL) # This builds documentation, but also exports all functions ...
pkgload::dev_topic_index_reset(m)
pkgload::unload(.moduleNameNoUnderscore(basename2(m))) # so, unload here before reloading without exporting
}

RBuildIgnoreFile <- filenameFromFunction(packageFolderName, "", fileExt = ".Rbuildignore")
cat("^.*\\.Rproj$
^\\.Rproj\\.user$
^_pkgdown\\.yml$
.*\\.tar\\.gz$
.*\\.toc$
.*\\.zip$
^\\.lintr$
CONTRIBUTING\\.md
cran-comments\\.md
^docs$
^LICENSE$
vignettes/.*_cache$
vignettes/.*\\.log$
^\\.httr-oauth$
^revdep$
^\\.github$
^codecov\\.yml$
^CRAN-RELEASE$
^data/*
^.git
^.gitignore
^.gitmodules
", sep = "\n",
file = RBuildIgnoreFile, fill = TRUE)

return(invisible())
}

filenameFromFunction <- function(packageFolderName, fn = "", subFolder = "", fileExt = ".R") {
normPath(file.path(packageFolderName, subFolder, paste0(gsub("\\.", "", fn), fileExt)))
return(dFile)
}

filenameForMainFunctions <- function(module, modulePath = ".")
normPath(file.path(modulePath, unlist(module), "R", paste0(unlist(basename(module)), "Fns.R")))

0 comments on commit 54785c0

Please sign in to comment.