diff addTwoNumbers.R @ 3:3d7aaffea9f8 default tip

commit test2
author ana0gramg+galaxytd@gmail.com
date Wed, 19 Nov 2014 13:14:01 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/addTwoNumbers.R	Wed Nov 19 13:14:01 2014 +0900
@@ -0,0 +1,56 @@
+#!/usr/bin/env Rscript
+
+## begin warning handler
+withCallingHandlers({
+
+library(methods) # Because Rscript does not always do this
+
+options('useFancyQuotes' = FALSE)
+
+suppressPackageStartupMessages(library("optparse"))
+suppressPackageStartupMessages(library("RGalaxy"))
+
+
+option_list <- list()
+
+option_list$number1 <- make_option('--number1', type='numeric')
+option_list$number2 <- make_option('--number2', type='numeric')
+option_list$sum <- make_option('--sum', type='character')
+
+
+opt <- parse_args(OptionParser(option_list=option_list))
+
+suppressPackageStartupMessages(library(RSclient))
+
+## function body not needed here, it is in package
+
+params <- list()
+for(param in names(opt))
+{
+    if (!param == "help")
+        params[param] <- opt[param]
+}
+
+setClass("GalaxyRemoteError", contains="character")
+wrappedFunction <- function(f)
+{
+    tryCatch(do.call(f, params),
+        error=function(e) new("GalaxyRemoteError", conditionMessage(e)))
+}
+
+
+c <- RS.connect(host='localhost', port=6311)
+RS.eval(c, options('useFancyQuotes' = FALSE))
+RS.eval(c, suppressPackageStartupMessages(library(RGalaxy)))
+RS.assign(c, 'params', params)
+RS.assign(c, 'wrappedFunction', wrappedFunction)
+RS.eval(c, setClass('GalaxyRemoteError', contains='character'))
+res <- RS.eval(c, wrappedFunction(addTwoNumbers))
+RS.close(c)
+if(is(res, 'GalaxyRemoteError'))RGalaxy::gstop(res)
+
+## end warning handler
+}, warning = function(w) {
+    cat(paste("Warning:", conditionMessage(w), "\n"))
+    invokeRestart("muffleWarning")
+})