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.
30 lines
791 B
R
30 lines
791 B
R
# 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
|
|
}
|