From f76d3c4f9505007e654f237f84e3014473409b22 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 24 Feb 2018 15:42:26 -0800 Subject: [PATCH] Allow autoupdate --repo to be specified multiple times --- pre_commit/commands/autoupdate.py | 4 ++-- pre_commit/main.py | 5 +++-- tests/commands/autoupdate_test.py | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pre_commit/commands/autoupdate.py b/pre_commit/commands/autoupdate.py index ca83a588..f375913c 100644 --- a/pre_commit/commands/autoupdate.py +++ b/pre_commit/commands/autoupdate.py @@ -106,7 +106,7 @@ def _write_new_config_file(path, output): f.write(to_write) -def autoupdate(runner, tags_only, repo=None): +def autoupdate(runner, tags_only, repos=()): """Auto-update the pre-commit config to the latest versions of repos.""" migrate_config(runner, quiet=True) retv = 0 @@ -120,7 +120,7 @@ def autoupdate(runner, tags_only, repo=None): is_local_repo(repo_config) or is_meta_repo(repo_config) or # Skip updating any repo_configs that aren't for the specified repo - repo and repo != repo_config['repo'] + repos and repo_config['repo'] not in repos ): output_repos.append(repo_config) continue diff --git a/pre_commit/main.py b/pre_commit/main.py index 16b6c3b6..e2f48ed3 100644 --- a/pre_commit/main.py +++ b/pre_commit/main.py @@ -168,7 +168,8 @@ def main(argv=None): ), ) autoupdate_parser.add_argument( - '--repo', help='Only update this repository.', + '--repo', dest='repos', action='append', metavar='REPO', + help='Only update this repository -- may be specified multiple times.', ) migrate_config_parser = subparsers.add_parser( @@ -251,7 +252,7 @@ def main(argv=None): return autoupdate( runner, tags_only=not args.bleeding_edge, - repo=args.repo, + repos=args.repos, ) elif args.command == 'migrate-config': return migrate_config(runner) diff --git a/tests/commands/autoupdate_test.py b/tests/commands/autoupdate_test.py index 91e7733f..8fe4583d 100644 --- a/tests/commands/autoupdate_test.py +++ b/tests/commands/autoupdate_test.py @@ -138,7 +138,7 @@ def test_autoupdate_out_of_date_repo_with_correct_repo_name( runner = Runner('.', C.CONFIG_FILE) before = open(C.CONFIG_FILE).read() repo_name = 'file://{}'.format(out_of_date_repo.path) - ret = autoupdate(runner, tags_only=False, repo=repo_name) + ret = autoupdate(runner, tags_only=False, repos=(repo_name,)) after = open(C.CONFIG_FILE).read() assert ret == 0 assert before != after @@ -158,7 +158,7 @@ def test_autoupdate_out_of_date_repo_with_wrong_repo_name( runner = Runner('.', C.CONFIG_FILE) before = open(C.CONFIG_FILE).read() # It will not update it, because the name doesn't match - ret = autoupdate(runner, tags_only=False, repo='wrong_repo_name') + ret = autoupdate(runner, tags_only=False, repos=('wrong_repo_name',)) after = open(C.CONFIG_FILE).read() assert ret == 0 assert before == after