-
-
Notifications
You must be signed in to change notification settings - Fork 518
/
_render.R
34 lines (32 loc) · 1.33 KB
/
_render.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
quiet = "--quiet" %in% commandArgs(FALSE)
formats = commandArgs(TRUE)
# provide default formats if necessary
if (length(formats) == 0) formats = c('bookdown::pdf_book', 'bookdown::gitbook')
# render the book to all formats unless they are specified via command-line args
for (fmt in formats) {
cmd = sprintf("bookdown::render_book('index.Rmd', '%s', quiet = %s)", fmt, quiet)
res = xfun::Rscript(c('-e', shQuote(cmd)))
if (res != 0) stop('Failed to compile the book to ', fmt)
}
# When several format are rendered, usually when make all is called,
# then we publish everything to bookdown.org
if (length(formats) > 1) {
message(">> Publishing Books")
if (!is.na(Sys.getenv("CI", NA))) {
xfun::pkg_load2("rsconnect")
# On CI connect to server, using API KEY and deploy using appId
rsconnect::addConnectServer('https://bookdown.org', 'bookdown.org')
rsconnect::connectApiUser(
account = 'GHA', server = 'bookdown.org',
apiKey = Sys.getenv('CONNECT_API_KEY')
)
rsconnect::deploySite(
appId = Sys.getenv('CONTENT_ID'),
server = 'bookdown.org',
render = 'none', logLevel = 'verbose',
forceUpdate = TRUE)
} else if (Sys.getenv('USER') == 'yihui') {
# for local deployment when rsconnect/ is available
bookdown::publish_book('rmarkdown', server = 'bookdown.org', render = 'none')
}
}