X-Git-Url: http://git.scottworley.com/pinch/blobdiff_plain/7c4de64c46013216cfef1d7fb34878b317a11ab6..f8f5b12546942d8d801f3cda70c798d4a4e4ae13:/pinch.py diff --git a/pinch.py b/pinch.py index 47f4e34..cc653da 100644 --- a/pinch.py +++ b/pinch.py @@ -50,7 +50,11 @@ class ChannelTableEntry(types.SimpleNamespace): url: str -class Channel(types.SimpleNamespace): +class SearchPath(types.SimpleNamespace): + release_name: str + + +class Channel(SearchPath): alias_of: str channel_html: bytes channel_url: str @@ -59,7 +63,6 @@ class Channel(types.SimpleNamespace): git_repo: str git_revision: str old_git_revision: str - release_name: str table: Dict[str, ChannelTableEntry] @@ -490,6 +493,10 @@ def git_revision_name(v: Verification, channel: Channel) -> str: process.stdout.decode().strip()) +def read_search_path(conf: configparser.SectionProxy) -> Channel: + return Channel(**dict(conf.items())) + + def read_config(filename: str) -> configparser.ConfigParser: config = configparser.ConfigParser() config.read_file(open(filename), filename) @@ -503,7 +510,7 @@ def pin(args: argparse.Namespace) -> None: if args.channels and section not in args.channels: continue - channel = Channel(**dict(config[section].items())) + channel = read_search_path(config[section]) if hasattr(channel, 'alias_of'): assert not hasattr(channel, 'git_repo') @@ -541,7 +548,7 @@ def fetch_channel( v, conf['tarball_url'], Digest16( conf['tarball_sha256'])) - channel = Channel(**dict(conf.items())) + channel = read_search_path(conf) ensure_git_rev_available(v, channel) return git_get_tarball(v, channel)