R/setup.R

Defines functions .onLoad

#' @importFrom  rappdirs user_data_dir user_cache_dir
# cat("Running setup.R\n")
appname <- "loanroll"
appauthor <- NULL

#' release_subdir
#'
#' In the Loan Level Database, string containing the Agency (FNMA)
#' and the last loan acquisition period included in the release.
#' Its text and binary files are stored in a subdirectory of the corresponding
#' data directory of working directory given by that string
#' @export release_subdir
release_subdir <- "FNMA_YYYYQQ"

#' fn_datadir
#'
#' Local directory base to store text data files. Set up from environment variable FNMA_DATADIR. Should persist.
#' @export fn_datadir
fn_datadir <- rappdirs::user_data_dir(appname = appname, appauthor = appauthor)

#' fn_sf_datadir
#'
#' Local directory to store MBS Single Class text data files. Should persist.
#' @export fn_sf_datadir
fn_sf_datadir <- file.path(fn_datadir,"MBS","Single_Class")

#' fn_sf_datadir
#'
#' Local directory to store Loan Level Performance text data files.
#' @export fn_llp_datadir
fn_llp_datadir <- file.path(fn_datadir, release_subdir)

#' fn_workdir
#' Local directory to store binary data files. Set up from environment variable FNMA_WORKDIR. Should persist.
#'
#' @export fn_workdir
fn_workdir <- rappdirs::user_cache_dir(appname = appname, appauthor = appauthor)
#' fn_sf_workdir
#'
#' Local directory to store MBS Single Class binary data files. Should persist.
#' @export fn_sf_workdir
fn_sf_workdir <- file.path(fn_workdir, "MBS","Single_Class")

#' fn_llp_workdir
#'
#' Local directory to store Loan Level Performance binary data files. Should persist.
#' @export fn_llp_workdir
fn_llp_workdir <- file.path(fn_workdir,release_subdir)

.onLoad  <- function(libname, pkgname) {

  release_subdir <<- Sys.getenv("FNMA_LLP_REL", unset =  release_subdir)
  # packageStartupMessage("in setup.R(.onLoad): release_subdir=", release_subdir, "\n")

  fn_datadir <<- file.path(Sys.getenv("FNMA_DATADIR",
                                     unset = rappdirs::user_data_dir(appname = appname, appauthor = appauthor)))
  if(dir.exists(fn_datadir) && file.access(fn_datadir,6)==0) {
    fn_sf_datadir <<- file.path(fn_datadir,"MBS","Single_Class")
    if(!dir.exists(fn_sf_datadir)) {
      dir.create(fn_sf_datadir, recursive = TRUE)
    }

    fn_llp_datadir <<- file.path(fn_datadir, release_subdir)
    if(!dir.exists(fn_llp_datadir)) {
      #  warning(fn_llp_datadir, ' does not exist', call. = FALSE)
      dir.create(fn_llp_datadir, recursive = TRUE)
    }
  }
  # cat( fn_datadir, "\n")

  fn_workdir <<- file.path( Sys.getenv("FNMA_WORKDIR",
                                      unset = rappdirs::user_cache_dir(appname = appname, appauthor = appauthor)))
  if(dir.exists(fn_workdir) && file.access(fn_workdir, 6)==0) {
    fn_sf_workdir <<- file.path(fn_workdir, "MBS","Single_Class")
    if(!dir.exists(fn_sf_workdir)) {
      dir.create(fn_sf_workdir, recursive = TRUE)
    }

    fn_llp_workdir <<- file.path(fn_workdir,release_subdir)
    if(!dir.exists(fn_llp_workdir)) {
      warning(paste("creating", fn_llp_workdir))
      dir.create(fn_llp_workdir, recursive = TRUE)
    }


  }

}
canarionyc/loanroll documentation built on Sept. 7, 2020, 4:50 a.m.