#!/usr/bin/env Rscript

local({
  p = commandArgs(TRUE)
  if (length(p) == 0L || '--help' %in% p) {
    message('usage: knit input [--no-convert]
    --help        to print help messages
    --no-convert  do not convert tex to pdf, markdown to html, etc')
    q()
  }

  library(knitr)
  knit_fun = if ('--no-convert' %in% p) {
    p = setdiff(p, '--no-convert')
    knit
  } else {
    if (length(p) == 0L) stop('no input file provided')
    if (grepl('\\.(R|S)(nw|tex)$', p[1])) knit2pdf else {
      if (grepl('\\.R(md|markdown)$', p[1])) knit2html else knit
    }
  }

  mapply(knit_fun, p, MoreArgs = list(envir = globalenv()))
})
