big bang
This commit is contained in:
commit
7259c83384
115
rmd2html.R
Executable file
115
rmd2html.R
Executable file
@ -0,0 +1,115 @@
|
|||||||
|
#!/usr/bin/env Rscript
|
||||||
|
# CLI Wrapper for stationery r*2pdf functions
|
||||||
|
# Garrett Mills <garrett@glmdev.tech>
|
||||||
|
# Modified: 2019 April 2
|
||||||
|
|
||||||
|
library(stationery)
|
||||||
|
|
||||||
|
options <- commandArgs(trailingOnly = TRUE)
|
||||||
|
supported_extensions <- c(".Rmd")
|
||||||
|
files <- c()
|
||||||
|
base_command <- "rmd2html"
|
||||||
|
|
||||||
|
# default arguments here -- e.g. "--engine=Sweave"
|
||||||
|
arguments <- c()
|
||||||
|
|
||||||
|
# A simple function for level-based debug messages
|
||||||
|
debug_level = 0
|
||||||
|
debug <- function(output, level=1) {
|
||||||
|
if ( debug_level >= level ){
|
||||||
|
cat("DEBUG: ")
|
||||||
|
print(output)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate over the input arguments and sort them
|
||||||
|
# arguments that don't begin with a '--' are considered file names
|
||||||
|
# arguments that DO are considered arguments to be passed to base_command
|
||||||
|
for ( option in options ){
|
||||||
|
if ( startsWith(option, "--") ){
|
||||||
|
arguments <- c(arguments, option)
|
||||||
|
} else {
|
||||||
|
files <- c(files, option)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("Input files: ")
|
||||||
|
debug(files)
|
||||||
|
|
||||||
|
debug("Input arguments: ")
|
||||||
|
debug(arguments)
|
||||||
|
|
||||||
|
# display the usage information if requested
|
||||||
|
if ( "--help" %in% arguments ){
|
||||||
|
print(help(base_command, help_type="html"))
|
||||||
|
cat("Usage information requested. No files were modified.")
|
||||||
|
|
||||||
|
# This is required to give the browser time to load the page before we exit. I know, I know.
|
||||||
|
Sys.sleep(10)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
# if no input files are specified, prompt the user
|
||||||
|
if ( is.null(files) ){
|
||||||
|
cat("No input files specified. Enter the supported files to compile (all): ")
|
||||||
|
in_files <- readLines("stdin", n=1)
|
||||||
|
in_files <- strsplit(in_files, " ")
|
||||||
|
|
||||||
|
debug("Files entered:")
|
||||||
|
debug(in_files)
|
||||||
|
|
||||||
|
if ( in_files[[1]][1] == "all" ){
|
||||||
|
for ( extension in supported_extensions ){
|
||||||
|
files <- c( files, Sys.glob( paste(sep="", "*", extension) ) )
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
files <- c(in_files)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# compile specified files
|
||||||
|
for ( file in files ){
|
||||||
|
|
||||||
|
# warn and break if the file doesn't end in the proper extension
|
||||||
|
if ( !any( endsWith(file, supported_extensions) ) ){
|
||||||
|
cat(paste("WARN: Skipping compilation of file with unsupported extension:", file, "\n"))
|
||||||
|
} else {
|
||||||
|
|
||||||
|
arg_string <- ""
|
||||||
|
arg_names <- c()
|
||||||
|
|
||||||
|
# convert the arguments to a parameter string
|
||||||
|
for ( argument in arguments ){
|
||||||
|
argument <- strsplit(argument, "=")
|
||||||
|
if ( !( argument[[1]][1] %in% arg_names ) ){
|
||||||
|
arg_names <- c(arg_names, argument[[1]][1])
|
||||||
|
arg_string <- paste(arg_string, substring(argument[[1]][1], 3), "=\"", argument[[1]][2], "\"", ",", sep="")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove the trailing comma
|
||||||
|
arg_string <- substring(arg_string, 1, nchar(arg_string)-1)
|
||||||
|
|
||||||
|
debug("Argument string:")
|
||||||
|
debug(arg_string)
|
||||||
|
|
||||||
|
# form the function call itself
|
||||||
|
function_call <- paste(sep="", base_command, '("', file, '"')
|
||||||
|
|
||||||
|
# if there are arguments to pass, add them
|
||||||
|
if ( arg_string != "" ){
|
||||||
|
function_call <- paste(sep="", function_call, ", ", arg_string)
|
||||||
|
}
|
||||||
|
|
||||||
|
# add the closing parenthesis
|
||||||
|
function_call <- paste(sep="", function_call, ")")
|
||||||
|
|
||||||
|
debug("Function call:")
|
||||||
|
debug(function_call)
|
||||||
|
|
||||||
|
# execute the function call as R code
|
||||||
|
eval(parse(text=function_call))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
115
rmd2pdf.R
Executable file
115
rmd2pdf.R
Executable file
@ -0,0 +1,115 @@
|
|||||||
|
#!/usr/bin/env Rscript
|
||||||
|
# CLI Wrapper for stationery r*2pdf functions
|
||||||
|
# Garrett Mills <garrett@glmdev.tech>
|
||||||
|
# Modified: 2019 April 2
|
||||||
|
|
||||||
|
library(stationery)
|
||||||
|
|
||||||
|
options <- commandArgs(trailingOnly = TRUE)
|
||||||
|
supported_extensions <- c(".Rmd")
|
||||||
|
files <- c()
|
||||||
|
base_command <- "rmd2pdf"
|
||||||
|
|
||||||
|
# default arguments here -- e.g. "--engine=Sweave"
|
||||||
|
arguments <- c()
|
||||||
|
|
||||||
|
# A simple function for level-based debug messages
|
||||||
|
debug_level = 0
|
||||||
|
debug <- function(output, level=1) {
|
||||||
|
if ( debug_level >= level ){
|
||||||
|
cat("DEBUG: ")
|
||||||
|
print(output)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate over the input arguments and sort them
|
||||||
|
# arguments that don't begin with a '--' are considered file names
|
||||||
|
# arguments that DO are considered arguments to be passed to base_command
|
||||||
|
for ( option in options ){
|
||||||
|
if ( startsWith(option, "--") ){
|
||||||
|
arguments <- c(arguments, option)
|
||||||
|
} else {
|
||||||
|
files <- c(files, option)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("Input files: ")
|
||||||
|
debug(files)
|
||||||
|
|
||||||
|
debug("Input arguments: ")
|
||||||
|
debug(arguments)
|
||||||
|
|
||||||
|
# display the usage information if requested
|
||||||
|
if ( "--help" %in% arguments ){
|
||||||
|
print(help(base_command, help_type="html"))
|
||||||
|
cat("Usage information requested. No files were modified.")
|
||||||
|
|
||||||
|
# This is required to give the browser time to load the page before we exit. I know, I know.
|
||||||
|
Sys.sleep(10)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
# if no input files are specified, prompt the user
|
||||||
|
if ( is.null(files) ){
|
||||||
|
cat("No input files specified. Enter the supported files to compile (all): ")
|
||||||
|
in_files <- readLines("stdin", n=1)
|
||||||
|
in_files <- strsplit(in_files, " ")
|
||||||
|
|
||||||
|
debug("Files entered:")
|
||||||
|
debug(in_files)
|
||||||
|
|
||||||
|
if ( in_files[[1]][1] == "all" ){
|
||||||
|
for ( extension in supported_extensions ){
|
||||||
|
files <- c( files, Sys.glob( paste(sep="", "*", extension) ) )
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
files <- c(in_files)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# compile specified files
|
||||||
|
for ( file in files ){
|
||||||
|
|
||||||
|
# warn and break if the file doesn't end in the proper extension
|
||||||
|
if ( !any( endsWith(file, supported_extensions) ) ){
|
||||||
|
cat(paste("WARN: Skipping compilation of file with unsupported extension:", file, "\n"))
|
||||||
|
} else {
|
||||||
|
|
||||||
|
arg_string <- ""
|
||||||
|
arg_names <- c()
|
||||||
|
|
||||||
|
# convert the arguments to a parameter string
|
||||||
|
for ( argument in arguments ){
|
||||||
|
argument <- strsplit(argument, "=")
|
||||||
|
if ( !( argument[[1]][1] %in% arg_names ) ){
|
||||||
|
arg_names <- c(arg_names, argument[[1]][1])
|
||||||
|
arg_string <- paste(arg_string, substring(argument[[1]][1], 3), "=\"", argument[[1]][2], "\"", ",", sep="")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove the trailing comma
|
||||||
|
arg_string <- substring(arg_string, 1, nchar(arg_string)-1)
|
||||||
|
|
||||||
|
debug("Argument string:")
|
||||||
|
debug(arg_string)
|
||||||
|
|
||||||
|
# form the function call itself
|
||||||
|
function_call <- paste(sep="", base_command, '("', file, '"')
|
||||||
|
|
||||||
|
# if there are arguments to pass, add them
|
||||||
|
if ( arg_string != "" ){
|
||||||
|
function_call <- paste(sep="", function_call, ", ", arg_string)
|
||||||
|
}
|
||||||
|
|
||||||
|
# add the closing parenthesis
|
||||||
|
function_call <- paste(sep="", function_call, ")")
|
||||||
|
|
||||||
|
debug("Function call:")
|
||||||
|
debug(function_call)
|
||||||
|
|
||||||
|
# execute the function call as R code
|
||||||
|
eval(parse(text=function_call))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
115
rnw2pdf-knitr.R
Executable file
115
rnw2pdf-knitr.R
Executable file
@ -0,0 +1,115 @@
|
|||||||
|
#!/usr/bin/env Rscript
|
||||||
|
# CLI Wrapper for stationery r*2pdf functions
|
||||||
|
# Garrett Mills <garrett@glmdev.tech>
|
||||||
|
# Modified: 2019 April 2
|
||||||
|
|
||||||
|
library(stationery)
|
||||||
|
|
||||||
|
options <- commandArgs(trailingOnly = TRUE)
|
||||||
|
supported_extensions <- c(".Rnw", ".lyx")
|
||||||
|
files <- c()
|
||||||
|
base_command <- "rnw2pdf"
|
||||||
|
|
||||||
|
# default arguments here -- e.g. "--engine=Sweave"
|
||||||
|
arguments <- c("--engine=knitr")
|
||||||
|
|
||||||
|
# A simple function for level-based debug messages
|
||||||
|
debug_level = 0
|
||||||
|
debug <- function(output, level=1) {
|
||||||
|
if ( debug_level >= level ){
|
||||||
|
cat("DEBUG: ")
|
||||||
|
print(output)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate over the input arguments and sort them
|
||||||
|
# arguments that don't begin with a '--' are considered file names
|
||||||
|
# arguments that DO are considered arguments to be passed to base_command
|
||||||
|
for ( option in options ){
|
||||||
|
if ( startsWith(option, "--") ){
|
||||||
|
arguments <- c(arguments, option)
|
||||||
|
} else {
|
||||||
|
files <- c(files, option)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("Input files: ")
|
||||||
|
debug(files)
|
||||||
|
|
||||||
|
debug("Input arguments: ")
|
||||||
|
debug(arguments)
|
||||||
|
|
||||||
|
# display the usage information if requested
|
||||||
|
if ( "--help" %in% arguments ){
|
||||||
|
print(help(base_command, help_type="html"))
|
||||||
|
cat("Usage information requested. No files were modified.")
|
||||||
|
|
||||||
|
# This is required to give the browser time to load the page before we exit. I know, I know.
|
||||||
|
Sys.sleep(10)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
# if no input files are specified, prompt the user
|
||||||
|
if ( is.null(files) ){
|
||||||
|
cat("No input files specified. Enter the supported files to compile (all): ")
|
||||||
|
in_files <- readLines("stdin", n=1)
|
||||||
|
in_files <- strsplit(in_files, " ")
|
||||||
|
|
||||||
|
debug("Files entered:")
|
||||||
|
debug(in_files)
|
||||||
|
|
||||||
|
if ( in_files[[1]][1] == "all" ){
|
||||||
|
for ( extension in supported_extensions ){
|
||||||
|
files <- c( files, Sys.glob( paste(sep="", "*", extension) ) )
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
files <- c(in_files)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# compile specified files
|
||||||
|
for ( file in files ){
|
||||||
|
|
||||||
|
# warn and break if the file doesn't end in the proper extension
|
||||||
|
if ( !any( endsWith(file, supported_extensions) ) ){
|
||||||
|
cat(paste("WARN: Skipping compilation of file with unsupported extension:", file, "\n"))
|
||||||
|
} else {
|
||||||
|
|
||||||
|
arg_string <- ""
|
||||||
|
arg_names <- c()
|
||||||
|
|
||||||
|
# convert the arguments to a parameter string
|
||||||
|
for ( argument in arguments ){
|
||||||
|
argument <- strsplit(argument, "=")
|
||||||
|
if ( !( argument[[1]][1] %in% arg_names ) ){
|
||||||
|
arg_names <- c(arg_names, argument[[1]][1])
|
||||||
|
arg_string <- paste(arg_string, substring(argument[[1]][1], 3), "=\"", argument[[1]][2], "\"", ",", sep="")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove the trailing comma
|
||||||
|
arg_string <- substring(arg_string, 1, nchar(arg_string)-1)
|
||||||
|
|
||||||
|
debug("Argument string:")
|
||||||
|
debug(arg_string)
|
||||||
|
|
||||||
|
# form the function call itself
|
||||||
|
function_call <- paste(sep="", base_command, '("', file, '"')
|
||||||
|
|
||||||
|
# if there are arguments to pass, add them
|
||||||
|
if ( arg_string != "" ){
|
||||||
|
function_call <- paste(sep="", function_call, ", ", arg_string)
|
||||||
|
}
|
||||||
|
|
||||||
|
# add the closing parenthesis
|
||||||
|
function_call <- paste(sep="", function_call, ")")
|
||||||
|
|
||||||
|
debug("Function call:")
|
||||||
|
debug(function_call)
|
||||||
|
|
||||||
|
# execute the function call as R code
|
||||||
|
eval(parse(text=function_call))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
115
rnw2pdf-sweave.R
Executable file
115
rnw2pdf-sweave.R
Executable file
@ -0,0 +1,115 @@
|
|||||||
|
#!/usr/bin/env Rscript
|
||||||
|
# CLI Wrapper for stationery r*2pdf functions
|
||||||
|
# Garrett Mills <garrett@glmdev.tech>
|
||||||
|
# Modified: 2019 April 2
|
||||||
|
|
||||||
|
library(stationery)
|
||||||
|
|
||||||
|
options <- commandArgs(trailingOnly = TRUE)
|
||||||
|
supported_extensions <- c(".Rnw", ".lyx")
|
||||||
|
files <- c()
|
||||||
|
base_command <- "rnw2pdf"
|
||||||
|
|
||||||
|
# default arguments here -- e.g. "--engine=Sweave"
|
||||||
|
arguments <- c("--engine=Sweave")
|
||||||
|
|
||||||
|
# A simple function for level-based debug messages
|
||||||
|
debug_level = 0
|
||||||
|
debug <- function(output, level=1) {
|
||||||
|
if ( debug_level >= level ){
|
||||||
|
cat("DEBUG: ")
|
||||||
|
print(output)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate over the input arguments and sort them
|
||||||
|
# arguments that don't begin with a '--' are considered file names
|
||||||
|
# arguments that DO are considered arguments to be passed to base_command
|
||||||
|
for ( option in options ){
|
||||||
|
if ( startsWith(option, "--") ){
|
||||||
|
arguments <- c(arguments, option)
|
||||||
|
} else {
|
||||||
|
files <- c(files, option)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("Input files: ")
|
||||||
|
debug(files)
|
||||||
|
|
||||||
|
debug("Input arguments: ")
|
||||||
|
debug(arguments)
|
||||||
|
|
||||||
|
# display the usage information if requested
|
||||||
|
if ( "--help" %in% arguments ){
|
||||||
|
print(help(base_command, help_type="html"))
|
||||||
|
cat("Usage information requested. No files were modified.")
|
||||||
|
|
||||||
|
# This is required to give the browser time to load the page before we exit. I know, I know.
|
||||||
|
Sys.sleep(10)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
# if no input files are specified, prompt the user
|
||||||
|
if ( is.null(files) ){
|
||||||
|
cat("No input files specified. Enter the supported files to compile (all): ")
|
||||||
|
in_files <- readLines("stdin", n=1)
|
||||||
|
in_files <- strsplit(in_files, " ")
|
||||||
|
|
||||||
|
debug("Files entered:")
|
||||||
|
debug(in_files)
|
||||||
|
|
||||||
|
if ( in_files[[1]][1] == "all" ){
|
||||||
|
for ( extension in supported_extensions ){
|
||||||
|
files <- c( files, Sys.glob( paste(sep="", "*", extension) ) )
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
files <- c(in_files)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# compile specified files
|
||||||
|
for ( file in files ){
|
||||||
|
|
||||||
|
# warn and break if the file doesn't end in the proper extension
|
||||||
|
if ( !any( endsWith(file, supported_extensions) ) ){
|
||||||
|
cat(paste("WARN: Skipping compilation of file with unsupported extension:", file, "\n"))
|
||||||
|
} else {
|
||||||
|
|
||||||
|
arg_string <- ""
|
||||||
|
arg_names <- c()
|
||||||
|
|
||||||
|
# convert the arguments to a parameter string
|
||||||
|
for ( argument in arguments ){
|
||||||
|
argument <- strsplit(argument, "=")
|
||||||
|
if ( !( argument[[1]][1] %in% arg_names ) ){
|
||||||
|
arg_names <- c(arg_names, argument[[1]][1])
|
||||||
|
arg_string <- paste(arg_string, substring(argument[[1]][1], 3), "=\"", argument[[1]][2], "\"", ",", sep="")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove the trailing comma
|
||||||
|
arg_string <- substring(arg_string, 1, nchar(arg_string)-1)
|
||||||
|
|
||||||
|
debug("Argument string:")
|
||||||
|
debug(arg_string)
|
||||||
|
|
||||||
|
# form the function call itself
|
||||||
|
function_call <- paste(sep="", base_command, '("', file, '"')
|
||||||
|
|
||||||
|
# if there are arguments to pass, add them
|
||||||
|
if ( arg_string != "" ){
|
||||||
|
function_call <- paste(sep="", function_call, ", ", arg_string)
|
||||||
|
}
|
||||||
|
|
||||||
|
# add the closing parenthesis
|
||||||
|
function_call <- paste(sep="", function_call, ")")
|
||||||
|
|
||||||
|
debug("Function call:")
|
||||||
|
debug(function_call)
|
||||||
|
|
||||||
|
# execute the function call as R code
|
||||||
|
eval(parse(text=function_call))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user