Merge pull request #1831 from lorenzwalthert/renv-fix

Fix r hooks when hook repo is a package
This commit is contained in:
Anthony Sottile 2021-03-09 16:55:52 -08:00 committed by GitHub
commit 478efe55c6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -88,13 +88,11 @@ def install_environment(
env_dir = _get_env_dir(prefix, version) env_dir = _get_env_dir(prefix, version)
with clean_path_on_failure(env_dir): with clean_path_on_failure(env_dir):
os.makedirs(env_dir, exist_ok=True) 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) shutil.copy(prefix.path('renv.lock'), env_dir)
cmd_output_b( cmd_output_b(
'Rscript', '--vanilla', '-e', 'Rscript', '--vanilla', '-e',
"""\ f"""\
prefix_dir <- {prefix.prefix_dir!r}
missing_pkgs <- setdiff( missing_pkgs <- setdiff(
"renv", unname(installed.packages()[, "Package"]) "renv", unname(installed.packages()[, "Package"])
) )
@ -109,15 +107,15 @@ def install_environment(
'renv::activate("', file.path(getwd()), '"); ' 'renv::activate("', file.path(getwd()), '"); '
) )
writeLines(activate_statement, 'activate.R') writeLines(activate_statement, 'activate.R')
is_package <- tryCatch( is_package <- tryCatch({{
suppressWarnings( content_desc <- read.dcf(file.path(prefix_dir, 'DESCRIPTION'))
unname(read.dcf('DESCRIPTION')[,'Type'] == "Package") suppressWarnings(unname(content_desc[,'Type']) == "Package")
), }},
error = function(...) FALSE error = function(...) FALSE
) )
if (is_package) { if (is_package) {{
renv::install(normalizePath('.')) renv::install(prefix_dir)
} }}
""", """,
cwd=env_dir, cwd=env_dir,
) )