X-Git-Url: http://git.scottworley.com/pinch/blobdiff_plain/9e4ad8905fad1963badf6e7ff46d299e2128058f..ee11f936d4f2ce49965c18c2d9837fe98dd614b7:/pinch.py diff --git a/pinch.py b/pinch.py index a66a03a..6beb4e2 100644 --- a/pinch.py +++ b/pinch.py @@ -1,3 +1,10 @@ +# pinch: PIN CHannels - a replacement for `nix-channel --update` +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, version 3. + + import argparse import configparser import filecmp @@ -141,7 +148,6 @@ def symlink_archive(v: Verification, path: str) -> str: class AliasSearchPath(NamedTuple): alias_of: str - # pylint: disable=no-self-use def pin(self, _: Verification, __: Optional[Pin]) -> AliasPin: return AliasPin() @@ -149,7 +155,6 @@ class AliasSearchPath(NamedTuple): class SymlinkSearchPath(NamedTuple): path: str - # pylint: disable=no-self-use def pin(self, _: Verification, __: Optional[Pin]) -> SymlinkPin: return SymlinkPin() @@ -202,7 +207,6 @@ class ChannelSearchPath(NamedTuple): tarball_sha256=table['nixexprs.tar.xz'].digest, git_revision=new_gitpin.git_revision) - # pylint: disable=no-self-use def fetch(self, v: Verification, pin: Pin) -> str: assert isinstance(pin, ChannelPin) @@ -418,7 +422,9 @@ def compare_tarball_and_git( if ee in errors: errors.remove(ee) benign_errors.append(ee) - v.check(f'{len(errors)} unexpected incomparable files', len(errors) == 0) + v.check( + f'{len(errors)} unexpected incomparable files: {errors}', + len(errors) == 0) v.check( f'({len(benign_errors)} of {len(expected_errors)} expected incomparable files)', len(benign_errors) == len(expected_errors)) @@ -581,7 +587,7 @@ def read_pinned_config_section( section: str, conf: configparser.SectionProxy) -> Tuple[SearchPath, Pin]: sp, pin = read_config_section(conf) if pin is None: - raise Exception( + raise RuntimeError( f'Cannot update unpinned channel "{section}" (Run "pin" before "update")') return sp, pin @@ -600,7 +606,7 @@ def read_config_files( config = read_config(file) for section in config.sections(): if section in merged_config: - raise Exception('Duplicate channel "{section}"') + raise RuntimeError('Duplicate channel "{section}"') merged_config[section] = config[section] return merged_config