Added path function to PrefixedCommandRunner

This commit is contained in:
Anthony Sottile 2014-03-29 15:47:29 -07:00
parent bd6e62e28d
commit 6f0d566199
4 changed files with 44 additions and 12 deletions

View file

@ -33,10 +33,13 @@ class PrefixedCommandRunner(object):
return proc.returncode, stdout, stderr
def path(self, path_end):
path = os.path.join(self.prefix_dir, path_end)
return os.path.normpath(path)
@classmethod
def from_command_runner(cls, command_runner, prefix_postfix):
def from_command_runner(cls, command_runner, path_end):
"""Constructs a new command runner from an existing one by appending
`prefix_postfix` to the command runner's prefix directory.
`path_end` to the command runner's prefix directory.
"""
new_prefix = os.path.join(command_runner.prefix_dir, prefix_postfix)
return cls(new_prefix, popen=command_runner.__popen)
return cls(command_runner.path(path_end), popen=command_runner.__popen)

View file

@ -5,6 +5,7 @@ import os.path
import pre_commit.constants as C
from pre_commit import git
from pre_commit.clientlib.validate_config import load_config
from pre_commit.prefixed_command_runner import PrefixedCommandRunner
from pre_commit.repository import Repository
from pre_commit.util import cached_property
@ -44,3 +45,7 @@ class Runner(object):
@cached_property
def pre_commit_path(self):
return os.path.join(self.git_root, '.git/hooks/pre-commit')
@cached_property
def workspace_runner(self):
return PrefixedCommandRunner(C.HOOKS_WORKSPACE)