Mercurial > repos > koash > test
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") +})