library(optparse)

# ------------------------------------------------------------------------------
# defaults
# ------------------------------------------------------------------------------

default.ncores <- 32
default.verbose <- FALSE
default.vegtype <- "all"

# ------------------------------------------------------------------------------
# parsing arguments
# ------------------------------------------------------------------------------

options <- list (
  make_option(
    opt_str = c("-t", "--t.radius"),
    dest    = "t.radius",
    type    = "integer",
    default = 20000,
    help    = "radius of buffer when resampling plots",
    metavar = "4"
  ),
  
  make_option(
    opt_str = c("-r", "--reps"),
    dest    = "reps",
    type    = "integer",
    default = 99,
    help    = "number of replications",
    metavar = "4"
  ),
  
	make_option(
		opt_str = c("-c", "--cores"),
		dest    = "cores",
		type    = "integer",
		default = default.ncores,
		help    = paste0("number of CPU cores to use, defaults to ", default.ncores),
		metavar = "4"
	),
  
  make_option(
    opt_str = c("-e", "--vegtype"),
    dest    = "vegtype",
    type    = "character",
    default = default.vegtype,
    help    = paste0("number of CPU cores to use, defaults to ", default.ncores),
    metavar = "4"
  ),
  
  
        make_option(
		opt_str = c("-v", "--verbose"),
		action  = "store_true",
		default = default.verbose,
		help    = "print more output on what's happening"
	)
)

parser <- OptionParser(
       usage       = "Rscript %prog [options] data dt_beals header output",
       option_list = options,
       description = "\nan awesome R script",
       epilogue    = "use with caution, the awesomeness might slap you in the face!"
)

cli <- parse_args(parser, positional_arguments = 2)

# ------------------------------------------------------------------------------
# assign a few shortcuts
# ------------------------------------------------------------------------------

header   <- cli$args[1]
output   <- cli$args[2]
t.radius <- cli$options$t.radius
reps     <- cli$options$reps
cores    <- cli$options$cores
vegtype  <- cli$options$vegtype
verbose  <- cli$options$verbose

# ------------------------------------------------------------------------------
# actual program
# ------------------------------------------------------------------------------

source("A99_ResamplingByRadius.R")

res.sub(header, output, t.radius, reps, cores, vegtype, verbose)