From 91f0cfc13cb5c5e8d10f9321e68ed0304068a234 Mon Sep 17 00:00:00 2001 From: gebele Date: Fri, 4 May 2018 10:12:12 +0000 Subject: added ext --- ext/lazar/Makefile | 5 +++++ ext/lazar/extconf.rb | 32 ++++++++++++++++++++++++++++++++ ext/lazar/rinstall.R | 12 ++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 ext/lazar/Makefile create mode 100644 ext/lazar/extconf.rb create mode 100644 ext/lazar/rinstall.R (limited to 'ext') diff --git a/ext/lazar/Makefile b/ext/lazar/Makefile new file mode 100644 index 0000000..1d51914 --- /dev/null +++ b/ext/lazar/Makefile @@ -0,0 +1,5 @@ +all: + true + +install: + true diff --git a/ext/lazar/extconf.rb b/ext/lazar/extconf.rb new file mode 100644 index 0000000..9997106 --- /dev/null +++ b/ext/lazar/extconf.rb @@ -0,0 +1,32 @@ +require 'fileutils' +require 'rbconfig' +require 'mkmf' + +main_dir = File.expand_path(File.join(File.dirname(__FILE__),"..","..")) + +# check for required programs +programs = ["R","Rscript","mongod","java","getconf"] +programs.each do |program| + abort "Please install #{program} on your system." unless find_executable program +end + +abort "Please install Rserve on your system. Execute 'install.packages('Rserve')' in a R console running as root ('sudo R')." unless `R CMD Rserve --version`.match(/^Rserve/) + +# install R packages +r_dir = File.join main_dir, "R" +FileUtils.mkdir_p r_dir +#FileUtils.mkdir_p File.join(main_dir,"bin") # for Rserve binary +rinstall = File.expand_path(File.join(File.dirname(__FILE__),"rinstall.R")) +puts `Rscript --vanilla #{rinstall} #{r_dir}` + +r_libs = Dir[File.join(r_dir,"*")].collect{|l| l.sub(r_dir, '').sub('/','')}.sort +["caret","doMC","foreach","ggplot2","gridExtra","iterators","pls"].each do |lib| + abort "Failed to install R package '#{lib}'." unless r_libs.include?(lib) +end + +# create a fake Makefile +File.open(File.join(File.dirname(__FILE__),"Makefile"),"w+") do |makefile| + makefile.puts "all:\n\ttrue\n\ninstall:\n\ttrue\n" +end + +$makefile_created = true diff --git a/ext/lazar/rinstall.R b/ext/lazar/rinstall.R new file mode 100644 index 0000000..98e612d --- /dev/null +++ b/ext/lazar/rinstall.R @@ -0,0 +1,12 @@ +libdir = commandArgs(trailingOnly=TRUE)[1] +repo = "https://stat.ethz.ch/CRAN/" +#install.packages("Rserve",lib=libdir,repos=repo,dependencies=TRUE) +install.packages("stringi",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("iterators",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("foreach",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("gridExtra",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("ggplot2",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("pls",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("randomForest",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("caret",lib=libdir,repos=repo,dependencies=TRUE); +install.packages("doMC",lib=libdir,repos=repo,dependencies=TRUE); -- cgit v1.2.3