From 183e20528865eaf12c80d5899a6bf64b048d009a Mon Sep 17 00:00:00 2001 From: Edgar Geier Date: Mon, 22 Jul 2019 21:13:28 +0200 Subject: [PATCH] Check --config option is a path to a regular file --- pre_commit/main.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pre_commit/main.py b/pre_commit/main.py index 67a67a05..9f18210b 100644 --- a/pre_commit/main.py +++ b/pre_commit/main.py @@ -36,6 +36,17 @@ logger = logging.getLogger('pre_commit') os.environ.pop('__PYVENV_LAUNCHER__', None) +def _file_path(path): + if os.path.isfile(path): + return path + elif os.path.exists(path): + msg = '{} is not a regular file'.format(path) + raise argparse.ArgumentTypeError(msg) + else: + msg = '{} does not exist'.format(path) + raise argparse.ArgumentTypeError(msg) + + def _add_color_option(parser): parser.add_argument( '--color', default='auto', type=color.use_color, @@ -48,6 +59,7 @@ def _add_config_option(parser): parser.add_argument( '-c', '--config', default=C.CONFIG_FILE, help='Path to alternate config file', + type=_file_path, )