## sys_variables.r

setSysVarIfBlank <- function(name, value, verbose="auto") {
  if (missing(value) && !is.null(names(name))) {
    value <- name
    name <- names(name)
  }

  if (!is.character(value) && !is.numeric(value))
    warning("value should be a string")

  ## Coerce to character
  value <- as.character(value)

  if (Sys.getenv(name) == "") {
    verboseMsg(verbose, sprintf("setting variable '%s' to '%s'", name, value))
    .Internal(Sys.setenv(name, as.character(unlist(value))))
  } else {
    verboseMsg(verbose, sprintf("variable '%s' already is set and has value '%s'", name, Sys.getenv(name)))
  }

  return(Sys.getenv(name))
}

if (FALSE) {

  cat("LD_LIBRARY_PATH  ......  "); system("echo $LD_LIBRARY_PATH")
  cat("ODBCINI  ......  "); system("echo $ODBCINI")
  cat("ODBCSYSINI  ......  "); system("echo $ODBCSYSINI")
  cat("SIMBAINI  ......  "); system("echo $SIMBAINI")
  cat("TEST_VAR  ......  "); system("echo $TEST_VAR")


  ## FOR SNOWFLAKE
  setSysVarIfBlank("LD_LIBRARY_PATH",  "/usr/lib64/R/lib:/usr/local/lib64:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/amd64:/usr/lib/jvm/java/lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib::/etc/snowflake/snowflake_odbc:/usr/bin/snowflake_odbc/lib")
  setSysVarIfBlank("ODBCSYSINI",  "/usr/bin/snowflake_odbc/conf")
  setSysVarIfBlank("SIMBAINI",  "/usr/bin/snowflake_odbc/conf/unixodbc.snowflake.ini")
}

