#! /usr/local/bin/Rscript d <- getwd() files <- dir(d, patt = "[.]out$", full.names = TRUE) args <- commandArgs(TRUE) known <- readLines("~/R/packages/known") if(identical(args, "gcc")) known <- c(known, readLines("~/R/packages/known.gcc")) if(identical(args, "clang")) known <- c(known, readLines("~/R/packages/known.clang")) known <- known[nzchar(known)] known <- grep("^#", known, invert = TRUE, value = TRUE) known <- paste0(d, "/", known, ".out") for (f in known) { if(!file.exists(f)) { ff <- sub("[.]out", "", basename(f)) message(sprintf("package %s has been removed", sQuote(ff))) next } lines <- readLines(f, warn = FALSE) st <- grepl("^Status.*ERROR", lines) if (!any(st)) { ff <- sub("[.]out", "", basename(f)) message(sprintf("package %s is no longer failing", sQuote(ff))) } } res <- character() files <- setdiff(files, known) for (f in files) { lines <- readLines(f, warn = FALSE) st <- grepl("^Status.*ERROR", lines) if (any(st)) { res <- c(res, paste0(basename(f), ":", lines[st])) } } writeLines(res, stdout())