summaryrefslogtreecommitdiffstats
path: root/pre_commit
diff options
context:
space:
mode:
Diffstat (limited to 'pre_commit')
-rw-r--r--pre_commit/languages/r.py20
1 files changed, 9 insertions, 11 deletions
diff --git a/pre_commit/languages/r.py b/pre_commit/languages/r.py
index 1d42fea..83e6000 100644
--- a/pre_commit/languages/r.py
+++ b/pre_commit/languages/r.py
@@ -88,13 +88,11 @@ def install_environment(
env_dir = _get_env_dir(prefix, version)
with clean_path_on_failure(env_dir):
os.makedirs(env_dir, exist_ok=True)
- path_desc_source = prefix.path('DESCRIPTION')
- if os.path.exists(path_desc_source):
- shutil.copy(path_desc_source, env_dir)
shutil.copy(prefix.path('renv.lock'), env_dir)
cmd_output_b(
'Rscript', '--vanilla', '-e',
- """\
+ f"""\
+ prefix_dir <- {prefix.prefix_dir!r}
missing_pkgs <- setdiff(
"renv", unname(installed.packages()[, "Package"])
)
@@ -109,15 +107,15 @@ def install_environment(
'renv::activate("', file.path(getwd()), '"); '
)
writeLines(activate_statement, 'activate.R')
- is_package <- tryCatch(
- suppressWarnings(
- unname(read.dcf('DESCRIPTION')[,'Type'] == "Package")
- ),
+ is_package <- tryCatch({{
+ content_desc <- read.dcf(file.path(prefix_dir, 'DESCRIPTION'))
+ suppressWarnings(unname(content_desc[,'Type']) == "Package")
+ }},
error = function(...) FALSE
)
- if (is_package) {
- renv::install(normalizePath('.'))
- }
+ if (is_package) {{
+ renv::install(prefix_dir)
+ }}
""",
cwd=env_dir,
)