Skip to content

Commit 9672651

Browse files
author
Vladimir Kotal
committed
use function for list difference
1 parent 93b0788 commit 9672651

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

tools/sync/mirror.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
from repository import Repository
4949
from mercurial import MercurialRepository
5050
from repofactory import get_repository
51-
from utils import is_exe, check_create_dir, get_int
51+
from utils import is_exe, check_create_dir, get_int, diff_list
5252
from hook import run_hook
5353
from readconfig import read_config
5454
from opengrok import get_repos, get_config_value, get_repo_type
@@ -105,11 +105,11 @@
105105

106106
GLOBAL_TUNABLES = ['hookdir', 'proxy', 'logdir', 'commands', 'projects',
107107
HOOK_TIMEOUT_PROPERTY, CMD_TIMEOUT_PROPERTY]
108-
for key in config.keys():
109-
if key not in GLOBAL_TUNABLES:
110-
logger.error("uknown global configuration option '{}'"
111-
.format(key))
112-
sys.exit(1)
108+
diff = diff_list(config.keys(), GLOBAL_TUNABLES)
109+
if diff:
110+
logger.error("uknown global configuration option(s): '{}'"
111+
.format(diff))
112+
sys.exit(1)
113113

114114
# Make sure the log directory exists.
115115
logdir = config.get("logdir")
@@ -181,11 +181,11 @@
181181
KNOWN_PROJECT_TUNABLES = ['disabled', CMD_TIMEOUT_PROPERTY,
182182
HOOK_TIMEOUT_PROPERTY, 'proxy',
183183
'ignored_repos', 'hooks']
184-
for key in project_config.keys():
185-
if key not in KNOWN_PROJECT_TUNABLES:
186-
logger.error("uknown project configuration option '{}' "
187-
"for project {}".format(key, args.project))
188-
sys.exit(1)
184+
diff = diff_list(project_config.keys(), KNOWN_PROJECT_TUNABLES)
185+
if diff:
186+
logger.error("uknown project configuration option(s) '{}' "
187+
"for project {}".format(diff, args.project))
188+
sys.exit(1)
189189

190190
project_command_timeout = get_int(logger, "command timeout for "
191191
"project {}".format(args.project),

tools/sync/utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,11 @@ def get_int(logger, name, value):
8787
except ValueError:
8888
logger.error("'{}' is not a number: {}".format(name, value))
8989
return None
90+
91+
92+
def diff_list(first, second):
93+
"""
94+
Get difference of lists.
95+
"""
96+
second = set(second)
97+
return [item for item in first if item not in second]

0 commit comments

Comments
 (0)