Given a path of a file (or dir) in a potential project (e.g., an R package or an RStudio project), return the path to the project root directory.
proj_root(path = "./", rules = root_rules)root_rules
Path to the root directory if found, otherwise NULL
.
An object of class matrix
(inherits from array
) with 2 rows and 2 columns.
The initial path to start the search. If it is a file path, its parent directory will be used.
A matrix of character strings of two columns: the first column contains regular expressions to look for filenames that match the patterns, and the second column contains regular expressions to match the content of the matched files. The regular expression can be an empty string, meaning that it will match anything.
The search for the root directory is performed by a series of tests,
currently including looking for a DESCRIPTION
file that contains
Package: *
(which usually indicates an R package), and a
*.Rproj
file that contains Version: *
(which usually indicates
an RStudio project). If files with the expected patterns are not found in the
initial directory, the search will be performed recursively in upper-level
directories.