#!/bin/sh
set -e
R --no-echo << EOS 2>&1
	if (is.element("TeXmacs",installed.packages()[,1])) {
		suppressPackageStartupMessages(library(TeXmacs))
		library(TeXmacs,warn.conflicts=FALSE)
	}
	if (!(is.element("TeXmacs", installed.packages()[,1])) ||
		!(exists("TeXmacsR.version",where = as.environment("package:TeXmacs"))) ||
		as.numeric(get("TeXmacsR.version",envir=as.environment("package:TeXmacs"))) < 0.15 ) {

		lib_dir=.libPaths()[1]
		if (file.access(lib_dir,6)) {
			stop("in $0:\n  'lib =\"",lib_dir,"\"' is neither writable nor readable",
				",\n  either make it writable and readable or set a proper R_LIBS_USER (?.Library)")
		}

		current_dir=getwd(); setwd(tempdir());

		rtmpkg_rdir <- "/plugins/r/r/TeXmacs"
		default_custom_dir <- paste(Sys.getenv("HOME","/nonexistent"),"/.TeXmacs",sep="")
		custom_dir <- paste(Sys.getenv("TEXMACS_HOME_PATH",default_custom_dir),rtmpkg_rdir,sep="")
		system_ldir <- paste(Sys.getenv("TEXMACS_LOCAL_PATH","/usr/local/share/texmacs"),rtmpkg_rdir,sep="")
		system_dir <- paste(Sys.getenv("TEXMACS_PATH","/usr/share/texmacs"),rtmpkg_rdir,sep="")
		source_dir <- paste(Sys.getenv("TEXMACS_SOURCE_DIR","/usr/src/texmacs"),rtmpkg_rdir,sep="")
		if (dir.exists(custom_dir)) {
 			system(paste("R CMD build",custom_dir,sep=" "));
		} else if (dir.exists(system_ldir)) {
			system(paste("R CMD build",system_ldir,sep=" "));
		} else if (dir.exists(system_dir)) {
			system(paste("R CMD build",system_dir,sep=" "));
		} else if (dir.exists(source_dir)) {
			system(paste("R CMD build",source_dir,sep=" "));
		} else {
			stop("in $0:\ncannot find any source directory for the R TeXmacs package")
		}
		pack=list.files(pattern="TeXmacs.*gz");
		install.packages(pack,lib_dir,repos=NULL,type="source");

		setwd(current_dir);
	}
	q()
EOS
exit $?
##
