diff --git a/com.oracle.truffle.r.test.packages/r/install.package.R b/com.oracle.truffle.r.test.packages/r/install.package.R index 70e6958084013258ecd495d18eeca3aa7c80d827..5a537407b2308e5592aef7a9f82c53b3f1e5e1e7 100644 --- a/com.oracle.truffle.r.test.packages/r/install.package.R +++ b/com.oracle.truffle.r.test.packages/r/install.package.R @@ -39,10 +39,20 @@ parse.args <- function() { } run <- function() { - parse.args() - install.packages(pkgname, contriburl=contriburl, type="source", lib=lib.install, INSTALL_opts="--install-tests") + parse.args() + tryCatch({ + res <- install.packages(pkgname, contriburl=contriburl, type="source", lib=lib.install, INSTALL_opts="--install-tests") + if (res == NULL) 0L else 1L + }, error = function(e) { + cat(e$message, "\n") + return (1L) + }, warning = function(e) { + cat(e$message, "\n") + return (1L) + }) } if (!interactive()) { - run() + status.code <- run() + quit(status = status.code) }