inst/doc/An_Introduction_to_fakemake.R

## -----------------------------------------------------------------------------
str(fakemake::provide_make_list("minimal", clean_sink = TRUE))


## -----------------------------------------------------------------------------
ml <- fakemake::provide_make_list("minimal", clean_sink = TRUE)


## ----makelist-plot, dev = "png", fig.cap = "A Makelist"-----------------------
fakemake::visualize(ml, root = "all.Rout")


## -----------------------------------------------------------------------------
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml)))


## -----------------------------------------------------------------------------
show_file_mtime <- function(files = list.files(tempdir(), full.names = TRUE,
                                               pattern = "^.*\\.Rout")) {
    return(file.info(files)["mtime"])
}
show_file_mtime()


## -----------------------------------------------------------------------------
# ensure the modification time would change if the files were recreated
Sys.sleep(1)
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml)))
show_file_mtime()


## -----------------------------------------------------------------------------
fakemake::touch(file.path(tempdir(), "b1.Rout"))
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml)))
show_file_mtime()


## ---- echo = FALSE------------------------------------------------------------
# touch should do the job...
Sys.sleep(1)


## -----------------------------------------------------------------------------
fakemake::touch(file.path(tempdir(), "a1.Rout"))
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml)))
show_file_mtime()


## -----------------------------------------------------------------------------
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml, force = TRUE)))


## -----------------------------------------------------------------------------
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml, force = TRUE,
                                                recursive = FALSE)))


## -----------------------------------------------------------------------------
file.remove(dir(tempdir(), pattern = ".*\\.Rout", full.names = TRUE))
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml, dry_run = TRUE)))


## -----------------------------------------------------------------------------
dir(tempdir(), pattern = ".*\\.Rout")


## -----------------------------------------------------------------------------
withr::with_dir(tempdir(), print(fakemake::make("all.Rout", ml)))
dir(tempdir(), pattern = ".*\\.Rout")


## -----------------------------------------------------------------------------
i <- which(sapply(ml, "[[", "target") == "all.Rout")
ml[[i]]["alias"] <- "all"
withr::with_dir(tempdir(), print(fakemake::make("all", ml, force = TRUE)))


## -----------------------------------------------------------------------------
cat(readLines(file.path(tempdir(), "b1.Rout")), sep = "\n")


## -----------------------------------------------------------------------------
i <- which(sapply(ml, "[[", "target") == "b1.Rout")
ml[[i]]["code"]  <- paste(ml[[i]]["code"],
                      "cat('hello, world\n', file = \"b1.Rout\")",
                      "print(\"foobar\")",
                      sep = ";")
withr::with_dir(tempdir(), print(fakemake::make("b1.Rout", ml, force = TRUE)))
cat(readLines(file.path(tempdir(), "b1.Rout")), sep = "\n")


## -----------------------------------------------------------------------------
ml[[i]]["sink"] <- "b1.txt"
withr::with_dir(tempdir(), print(fakemake::make("b1.Rout", ml, force = TRUE)))


## -----------------------------------------------------------------------------
cat(readLines(file.path(tempdir(), "b1.Rout")), sep = "\n")
cat(readLines(file.path(tempdir(), "b1.txt")), sep = "\n")


## -----------------------------------------------------------------------------
i <- which(sapply(ml, "[[", "target") == "a1.Rout")
ml[[i]]["code"]


## -----------------------------------------------------------------------------
cat(readLines(file.path(tempdir(), "a1.Rout")), sep = "\n")


## -----------------------------------------------------------------------------
ml[[i]]["code"]  <- NULL
withr::with_dir(tempdir(), print(fakemake::make("a1.Rout", ml, force = TRUE)))


## -----------------------------------------------------------------------------
file.size(file.path(tempdir(), "a1.Rout"))


## -----------------------------------------------------------------------------
ml[[i]][".PHONY"]  <- TRUE
withr::with_dir(tempdir(), print(fakemake::make("a1.Rout", ml)))

Try the fakemake package in your browser

Any scripts or data that you put into this service are public.

fakemake documentation built on Aug. 16, 2023, 1:09 a.m.