Skip to content

Commit 9d0033c

Browse files
add system requirement git because of readme rendered hook
1 parent b8d74c4 commit 9d0033c

File tree

5 files changed

+67
-75
lines changed

5 files changed

+67
-75
lines changed

DESCRIPTION

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ License: GPL-3
1212
URL: https://lorenzwalthert.github.io/precommit/,
1313
https://github.com/lorenzwalthert/precommit
1414
Imports:
15-
R.cache,
1615
cli,
1716
fs,
1817
here,
1918
magrittr,
2019
purrr,
20+
R.cache,
2121
rlang,
2222
rprojroot,
2323
rstudioapi,
@@ -49,3 +49,4 @@ Roxygen: list(markdown = TRUE, roclets = c( "rd", "namespace", "collate",
4949
warning("Please install r-lib/pkgapi to make sure the file API is kept
5050
up to date"); NULL} ) )
5151
RoxygenNote: 7.1.2
52+
SystemRequirements: git

R/utils.R

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,7 @@ rev_read <- function(path = ".pre-commit-config.yaml", repo = hooks_repo) {
9999
rev_as_pkg_version <- function(rev) {
100100
package_version(gsub("^v", "", rev))
101101
}
102+
103+
has_git <- function() {
104+
nzchar(Sys.which("git"))
105+
}

inst/WORDLIST

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ styler
188188
sublicenses
189189
Sublicensing
190190
Sys
191+
SystemRequirements
191192
tcltk
192193
tempfile
193194
testthat

inst/hooks/exported/readme-rmd-rendered.R

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ if (file.exists("README.Rmd") & file.exists("README.md")) {
33
if (file.info("README.md")$mtime < file.info("README.Rmd")$mtime) {
44
rlang::abort("README.md is out of date; please re-knit README.Rmd.")
55
}
6-
6+
if (!nzchar(Sys.which("git"))) {
7+
rlang::abort("git not found on `$PATH`, hook can't be ran.")
8+
}
79
file_names_staged <- system2(
810
"git", c("diff --cached --name-only"),
911
stdout = TRUE

tests/testthat/test-hooks.R

Lines changed: 57 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -304,84 +304,68 @@ run_test("roxygenize",
304304

305305
### . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
306306
### readme-rmd-rendered ####
307-
run_test("readme-rmd-rendered",
308-
file_name = c("README.Rmd", "README.md"),
309-
suffix = "",
310-
error_msg = NULL,
311-
msg = NULL,
312-
file_transformer = function(files) {
313-
if (length(files) > 1) {
314-
# transformer is called once on all files and once per file
315-
content_2 <- readLines(files[2])
316-
Sys.sleep(2)
317-
writeLines(content_2, files[2])
318-
git_init()
319-
git2r::add(path = files)
307+
if (!has_git()) {
308+
run_test("readme-rmd-rendered",
309+
file_name = c("README.md", "README.Rmd"),
310+
suffix = "",
311+
error_msg = "out of date",
312+
msg = NULL,
313+
file_transformer = function(files) {
314+
if (length(files) > 1) {
315+
# transformer is called once on all files and once per file
316+
content_2 <- readLines(files[2])
317+
Sys.sleep(2)
318+
writeLines(content_2, files[2])
319+
git_init()
320+
git2r::add(path = files)
321+
}
322+
files
320323
}
321-
files
322-
}
323-
)
324+
)
324325

325-
run_test("readme-rmd-rendered",
326-
file_name = c("README.md", "README.Rmd"),
327-
suffix = "",
328-
error_msg = "out of date",
329-
msg = NULL,
330-
file_transformer = function(files) {
331-
if (length(files) > 1) {
332-
# transformer is called once on all files and once per file
333-
content_2 <- readLines(files[2])
334-
Sys.sleep(2)
335-
writeLines(content_2, files[2])
336-
git_init()
337-
git2r::add(path = files)
338-
}
339-
files
340-
}
341-
)
342326

327+
# only one file staged
328+
run_test("readme-rmd-rendered",
329+
file_name = c("README.Rmd", "README.md"),
330+
suffix = "",
331+
error_msg = "should be both staged",
332+
msg = NULL,
333+
file_transformer = function(files) {
334+
if (length(files) > 1) {
335+
# transformer is called once on all files and once per file
336+
content_2 <- readLines(files[2])
337+
Sys.sleep(2)
338+
writeLines(content_2, files[2])
339+
git_init()
340+
git2r::add(path = files[1])
341+
}
342+
files
343+
}
344+
)
343345

344-
# only one file staged
345-
run_test("readme-rmd-rendered",
346-
file_name = c("README.Rmd", "README.md"),
347-
suffix = "",
348-
error_msg = "should be both staged",
349-
msg = NULL,
350-
file_transformer = function(files) {
351-
if (length(files) > 1) {
352-
# transformer is called once on all files and once per file
353-
content_2 <- readLines(files[2])
354-
Sys.sleep(2)
355-
writeLines(content_2, files[2])
346+
# only has md
347+
run_test("readme-rmd-rendered",
348+
file_name = "README.md",
349+
suffix = "",
350+
error_msg = NULL,
351+
msg = NULL,
352+
file_transformer = function(files) {
356353
git_init()
357354
git2r::add(path = files[1])
355+
files
358356
}
359-
files
360-
}
361-
)
362-
363-
# only has md
364-
run_test("readme-rmd-rendered",
365-
file_name = "README.md",
366-
suffix = "",
367-
error_msg = NULL,
368-
msg = NULL,
369-
file_transformer = function(files) {
370-
git_init()
371-
git2r::add(path = files[1])
372-
files
373-
}
374-
)
357+
)
375358

376-
# only has Rmd
377-
run_test("readme-rmd-rendered",
378-
file_name = "README.Rmd",
379-
suffix = "",
380-
error_msg = NULL,
381-
msg = NULL,
382-
file_transformer = function(files) {
383-
git_init()
384-
git2r::add(path = files[1])
385-
files
386-
}
387-
)
359+
# only has Rmd
360+
run_test("readme-rmd-rendered",
361+
file_name = "README.Rmd",
362+
suffix = "",
363+
error_msg = NULL,
364+
msg = NULL,
365+
file_transformer = function(files) {
366+
git_init()
367+
git2r::add(path = files[1])
368+
files
369+
}
370+
)
371+
}

0 commit comments

Comments
 (0)