knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(golem) x <- file.path( tempdir(), "golex" ) unlink(x, TRUE, TRUE) x <- golem::create_golem(x, package_name = "golex", open = FALSE) old <- setwd(x) knitr::opts_knit$set(root.dir = x)
library(golem)
old <- setwd(x)
inst/golem-config.yml
When you start a new {golem}
application, you'll find a file called golem-config.yml
in the inst/
folder.
By default, this file contains the name of your app, its version, and the default working directory (which is the root of your package).
This config file is based on the {config}
format, which allows you to create configuration files for different application contexts. Please refer to this package documentation for more information.
golem-config
Here is what the default config file looks like:
default: golem_name: golex golem_version: 0.0.0.9000 app_prod: no production: app_prod: yes dev: golem_wd: !expr golem::pkg_path()
dev
config because the only moment you might reliably use this config is while developing your app. Use the app_sys()
function if you want to rely on the package path once the app is deployed.The good news is that if you don't want/need to use {config}
, you can safely ignore this file, just leave it where it is: it is used internally by the {golem}
functions.
These options are globally set with:
set_golem_options()
cat( sep = "\n", readLines( "inst/golem-config.yml" ) )
The functions reading the options in this config file are:
get_golem_name() get_golem_wd() get_golem_version()
You can set these with:
set_golem_name("this") set_golem_wd(".") set_golem_version("0.0.1")
cat( sep = "\n", readLines( "inst/golem-config.yml" ) )
golem-config
If you're already familiar with the {config}
package, you can use this file just as any config file.
{golem}
comes with an amend_golem_config()
function to add elements to it.
amend_golem_config( key = "where", value = "indev" ) amend_golem_config( key = "where", value = "inprod", config = "production" )
Will result in a golem-config.yml
file as such:
cat( sep = "\n", readLines( file.path(x, "inst/golem-config.yml") ) )
app_config.R
In R/app_config.R
, you'll find a get_golem_config()
function that allows you to retrieve config from this config file:
pkgload::load_all() get_golem_config( "where" ) get_golem_config( "where", config = "production" )
Or using the env var (default {config}
behavior):
Sys.setenv("R_CONFIG_ACTIVE" = "production") get_golem_config("where")
golem_config
vs golem_options
There is two ways to configure golem apps:
golem_opts
in the run_app()
function golem-config.yml
fileThe big difference between these two is that the golem options from run_app()
are meant to be configured during runtime: you'll be doing run_app(val = "this")
, whereas the golem-config
is meant to be used in the back-end, and will not be linked to the parameters passed to run_app()
(even if this is technically possible, this is not the main objective),.
It's also linked to the R_CONFIG_ACTIVE
environment variable, just as any {config}
file.
The idea is also that the golem-config.yml
file is shareable across {golem}
projects (golem_opts
are application specific), and will be tracked by version control systems.
{golem}
< 0.2.0 usersIf you've built an app with {golem}
before the version 0.2.0, this config file doesn't exist: you'll be prompted to create it if you update a newer version of {golem}
.
setwd(old)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.