#! Rscript

parquet_to_csv <- function(parquet, csv = "") {
  df <- nanoparquet::read_parquet(parquet)
  utils::write.csv(df, csv, row.names = FALSE)
}

usage <- function() {
  message("Usage: parquet-to-csv <parquet-file> [ <csv-file> ]")
}

main <- function(args) {
  if (length(args) < 1) {
    usage()
    stop("<parquet-file> is missing", call. = FALSE)
  }
  if (length(args) > 2) {
    usage()
    stop("Extra arguments.", call. = FALSE)
  }
  parquet_to_csv(args[[1]], if (length(args) == 2) args[[2]] else "")
}

if (is.null(sys.call())) {
  main(commandArgs(TRUE))
}
