From ba496b836911be1a5f139182fc118ef8b2f873a1 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sat, 11 Dec 2021 18:35:57 +0100 Subject: [PATCH 1/3] better r path detection --- pre_commit/languages/r.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pre_commit/languages/r.py b/pre_commit/languages/r.py index d573775f7..74ecc6a85 100644 --- a/pre_commit/languages/r.py +++ b/pre_commit/languages/r.py @@ -54,6 +54,12 @@ def _prefix_if_non_local_file_entry( path = prefix.path(entry[1]) return (path,) +def _rscript_exec(): + """ + When invoked in a sub-process of R, use full path + """ + return os.path.join(os.getenv('R_HOME', ""), 'Rscript') + def _entry_validate(entry: Sequence[str]) -> None: """ @@ -95,8 +101,9 @@ def install_environment( os.makedirs(env_dir, exist_ok=True) shutil.copy(prefix.path('renv.lock'), env_dir) shutil.copytree(prefix.path('renv'), os.path.join(env_dir, 'renv')) + cmd_output_b( - 'Rscript', '--vanilla', '-e', + _rscript_exec(), '--vanilla', '-e', f"""\ prefix_dir <- {prefix.prefix_dir!r} options( @@ -130,7 +137,7 @@ def install_environment( if additional_dependencies: with in_env(prefix, version): cmd_output_b( - 'Rscript', *RSCRIPT_OPTS, '-e', + _rscript_exec(), *RSCRIPT_OPTS, '-e', 'renv::install(commandArgs(trailingOnly = TRUE))', *additional_dependencies, cwd=env_dir, From b7331b653abca2f7dc711b452b60c29889888d89 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Fri, 24 Dec 2021 14:36:43 +0100 Subject: [PATCH 2/3] unset renv project --- pre_commit/languages/r.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pre_commit/languages/r.py b/pre_commit/languages/r.py index 74ecc6a85..98a8ec4f6 100644 --- a/pre_commit/languages/r.py +++ b/pre_commit/languages/r.py @@ -8,6 +8,7 @@ from pre_commit.envcontext import envcontext from pre_commit.envcontext import PatchesT +from pre_commit.envcontext import UNSET from pre_commit.hook import Hook from pre_commit.languages import helpers from pre_commit.prefix import Prefix @@ -23,6 +24,7 @@ def get_env_patch(venv: str) -> PatchesT: return ( ('R_PROFILE_USER', os.path.join(venv, 'activate.R')), + ('RENV_PROJECT', UNSET), ) @@ -54,11 +56,12 @@ def _prefix_if_non_local_file_entry( path = prefix.path(entry[1]) return (path,) -def _rscript_exec(): + +def _rscript_exec() -> str: """ When invoked in a sub-process of R, use full path """ - return os.path.join(os.getenv('R_HOME', ""), 'Rscript') + return os.path.join(os.getenv('R_HOME', ''), 'Rscript') def _entry_validate(entry: Sequence[str]) -> None: @@ -101,7 +104,7 @@ def install_environment( os.makedirs(env_dir, exist_ok=True) shutil.copy(prefix.path('renv.lock'), env_dir) shutil.copytree(prefix.path('renv'), os.path.join(env_dir, 'renv')) - + cmd_output_b( _rscript_exec(), '--vanilla', '-e', f"""\ From 1617692f12b8b67a471e6e810be49871b73ea056 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Fri, 24 Dec 2021 14:52:46 +0100 Subject: [PATCH 3/3] no docs --- pre_commit/languages/r.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pre_commit/languages/r.py b/pre_commit/languages/r.py index 98a8ec4f6..e034e3904 100644 --- a/pre_commit/languages/r.py +++ b/pre_commit/languages/r.py @@ -58,9 +58,6 @@ def _prefix_if_non_local_file_entry( def _rscript_exec() -> str: - """ - When invoked in a sub-process of R, use full path - """ return os.path.join(os.getenv('R_HOME', ''), 'Rscript')