view 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 source

#!/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")
})