X-Git-Url: http://git.scottworley.com/pinch/blobdiff_plain/01ba0eb2f8683ddb6f892c7adc98626cdba0d236..db3da89c7a9f14eec5aa400acfd3c888daca8385:/pinch.py diff --git a/pinch.py b/pinch.py index b044faf..ad49334 100644 --- a/pinch.py +++ b/pinch.py @@ -496,7 +496,7 @@ def pin(args: argparse.Namespace) -> None: def update(args: argparse.Namespace) -> None: v = Verification() config = configparser.ConfigParser() - exprs = {} + exprs: Dict[str, str] = {} configs = [read_config(filename) for filename in args.channels_file] for config in configs: for section in config.sections(): @@ -514,6 +514,8 @@ def update(args: argparse.Namespace) -> None: ensure_git_rev_available(v, channel) tarball = git_get_tarball(v, channel) + if section in exprs: + raise Exception('Duplicate channel "%s"' % section) exprs[section] = ( 'f: f { name = "%s"; channelName = "%%s"; src = builtins.storePath "%s"; }' % (config[section]['release_name'], tarball)) @@ -521,6 +523,8 @@ def update(args: argparse.Namespace) -> None: for config in configs: for section in config.sections(): if 'alias_of' in config[section]: + if section in exprs: + raise Exception('Duplicate channel "%s"' % section) exprs[section] = exprs[str(config[section]['alias_of'])] command = [