Skip to content

Commit

Permalink
Merge pull request #2301 from jeff-m-sullivan/rscript-path
Browse files Browse the repository at this point in the history
use Rscript path relative to $R_HOME/bin/...
  • Loading branch information
asottile committed Apr 2, 2022
2 parents d650160 + 764a0db commit e11163d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
6 changes: 5 additions & 1 deletion pre_commit/languages/r.py
Expand Up @@ -59,7 +59,11 @@ def _prefix_if_non_local_file_entry(


def _rscript_exec() -> str:
return os.path.join(os.getenv('R_HOME', ''), 'Rscript')
r_home = os.environ.get('R_HOME')
if r_home is None:
return 'Rscript'
else:
return os.path.join(r_home, 'bin', 'Rscript')


def _entry_validate(entry: Sequence[str]) -> None:
Expand Down
12 changes: 12 additions & 0 deletions tests/languages/r_test.py
Expand Up @@ -4,6 +4,7 @@

import pytest

from pre_commit import envcontext
from pre_commit.languages import r
from testing.fixtures import make_config_from_repo
from testing.fixtures import make_repo
Expand Down Expand Up @@ -129,3 +130,14 @@ def test_r_parsing_file_local(tempdir_factory, store):
config=config,
expect_path_prefix=False,
)


def test_rscript_exec_relative_to_r_home():
expected = os.path.join('r_home_dir', 'bin', 'Rscript')
with envcontext.envcontext((('R_HOME', 'r_home_dir'),)):
assert r._rscript_exec() == expected


def test_path_rscript_exec_no_r_home_set():
with envcontext.envcontext((('R_HOME', envcontext.UNSET),)):
assert r._rscript_exec() == 'Rscript'

0 comments on commit e11163d

Please sign in to comment.