feat: package skeleton — DESCRIPTION, NAMESPACE, session/manifest/cache/views
Minimal skeleton for uscogdata v0.1. Internal session layer with lazy cog_open(), manifest fetch+validate+cache, view registration placeholder. Depends on DuckDB >=1.0, httr2, jsonlite. inst/schemas/provenance-v1.json ships the structured provenance JSON Schema.
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
# R/config.R
|
||||
|
||||
#' Package-private mutable state
|
||||
#' @noRd
|
||||
.uscogdata_env <- new.env(parent = emptyenv())
|
||||
|
||||
.uscogdata_defaults <- list(
|
||||
url = "https://cloud.civilytics.org/s/REPLACE_WITH_SHARE_TOKEN/download/",
|
||||
cache_dir = NULL,
|
||||
manifest_ttl_secs = 3600L
|
||||
)
|
||||
|
||||
#' Resolve a config value: env var > option > default
|
||||
#' @noRd
|
||||
.cfg <- function(key) {
|
||||
env_var <- paste0("USCOGDATA_", toupper(key))
|
||||
v <- Sys.getenv(env_var, unset = NA)
|
||||
if (!is.na(v) && nzchar(v)) return(v)
|
||||
opt <- getOption(paste0("uscogdata.", key), default = NULL)
|
||||
if (!is.null(opt)) return(opt)
|
||||
.uscogdata_defaults[[key]]
|
||||
}
|
||||
|
||||
.resolve_url <- function() .cfg("url")
|
||||
|
||||
.resolve_cache_dir <- function() {
|
||||
v <- .cfg("cache_dir")
|
||||
if (is.null(v)) tools::R_user_dir("uscogdata", "cache") else v
|
||||
}
|
||||
Reference in New Issue
Block a user