|
23 | 23 | get_default_version = lang_base.basic_get_default_version |
24 | 24 |
|
25 | 25 |
|
26 | | -def _execute_vanilla_r_code_as_script(code: str, **kwargs: Any) -> str: |
27 | | - with _r_code_in_tempfile(code) as f: |
28 | | - cmd_out = cmd_output_b(_rscript_exec(), '--vanilla', f, **kwargs) |
29 | | - return cmd_out[1].decode().rstrip('\n') |
30 | | - |
31 | | - |
32 | | -def _read_installed_version(envdir: str) -> str: |
| 26 | +def _execute_vanilla_r_code_as_script( |
| 27 | + code: str, prefix: Prefix, version: str, args: Sequence[str] = (), |
| 28 | + **kwargs: Any, |
| 29 | +) -> str: |
| 30 | + with in_env(prefix, version): |
| 31 | + with _r_code_in_tempfile(code) as f: |
| 32 | + cmd_out = cmd_output_b( |
| 33 | + _rscript_exec(), *RSCRIPT_OPTS, f, *args, **kwargs, |
| 34 | + ) |
| 35 | + return cmd_out[1].decode().rstrip('\n') |
| 36 | + |
| 37 | + |
| 38 | +def _read_installed_version(envdir: str, prefix: Prefix, version: str) -> str: |
33 | 39 | return _execute_vanilla_r_code_as_script( |
34 | | - 'cat(renv::settings$r.version())', cwd=envdir, |
| 40 | + 'cat(renv::settings$r.version())', |
| 41 | + prefix=prefix, version=version, |
| 42 | + cwd=envdir, |
35 | 43 | ) |
36 | 44 |
|
37 | 45 |
|
38 | | -def _read_executable_version(envdir: str) -> str: |
| 46 | +def _read_executable_version(envdir: str, prefix: Prefix, version: str) -> str: |
39 | 47 | return _execute_vanilla_r_code_as_script( |
40 | 48 | 'cat(as.character(getRversion()))', |
| 49 | + prefix=prefix, version=version, |
41 | 50 | cwd=envdir, |
42 | 51 | ) |
43 | 52 |
|
44 | 53 |
|
45 | | -def _write_current_r_version(envdir: str) -> None: |
| 54 | +def _write_current_r_version( |
| 55 | + envdir: str, prefix: Prefix, version: str, |
| 56 | +) -> None: |
46 | 57 | _execute_vanilla_r_code_as_script( |
47 | 58 | 'renv::settings$r.version(as.character(getRversion()))', |
| 59 | + prefix=prefix, version=version, |
48 | 60 | cwd=envdir, |
49 | 61 | ) |
50 | 62 |
|
51 | 63 |
|
52 | 64 | def health_check(prefix: Prefix, version: str) -> str | None: |
53 | 65 | envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) |
54 | 66 |
|
55 | | - r_version_installation = _read_installed_version(envdir=envdir) |
56 | | - r_version_current_executable = _read_executable_version(envdir=envdir) |
| 67 | + r_version_installation = _read_installed_version( |
| 68 | + envdir=envdir, prefix=prefix, version=version, |
| 69 | + ) |
| 70 | + r_version_current_executable = _read_executable_version( |
| 71 | + envdir=envdir, prefix=prefix, version=version, |
| 72 | + ) |
57 | 73 | if r_version_installation in {'NULL', ''}: |
58 | 74 | return ( |
59 | 75 | 'Hooks were installed with an unknown R version. R version for ' |
@@ -193,17 +209,14 @@ def install_environment( |
193 | 209 | with _r_code_in_tempfile(r_code_inst_environment) as f: |
194 | 210 | cmd_output_b(_rscript_exec(), '--vanilla', f, cwd=env_dir) |
195 | 211 |
|
196 | | - _write_current_r_version(envdir=env_dir) |
| 212 | + _write_current_r_version(envdir=env_dir, prefix=prefix, version=version) |
197 | 213 | if additional_dependencies: |
198 | 214 | r_code_inst_add = 'renv::install(commandArgs(trailingOnly = TRUE))' |
199 | | - with in_env(prefix, version): |
200 | | - with _r_code_in_tempfile(r_code_inst_add) as f: |
201 | | - cmd_output_b( |
202 | | - _rscript_exec(), *RSCRIPT_OPTS, |
203 | | - f, |
204 | | - *additional_dependencies, |
205 | | - cwd=env_dir, |
206 | | - ) |
| 215 | + _execute_vanilla_r_code_as_script( |
| 216 | + code=r_code_inst_add, prefix=prefix, version=version, |
| 217 | + cwd=env_dir, |
| 218 | + args=additional_dependencies, |
| 219 | + ) |
207 | 220 |
|
208 | 221 |
|
209 | 222 | def _inline_r_setup(code: str) -> str: |
|
0 commit comments