From bbd14482f18fde77c61c45d4413e2d33305f7b41 Mon Sep 17 00:00:00 2001
From: Florian Angerer <florian.angerer@oracle.com>
Date: Thu, 23 Nov 2017 17:11:52 +0100
Subject: [PATCH] Correctly setting status code if installation fails.

---
 .../r/install.package.R                          | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

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 70e6958084..5a537407b2 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)
 }
-- 
GitLab