]> git.scottworley.com Git - pinch/blobdiff - pinch.py
Show which files are unexpectedly incomparable
[pinch] / pinch.py
index a66a03a5b126fd758a07242887f6090cad8fc30d..6beb4e25c59ee4ab0147c92ea7a9ee3f58b22588 100644 (file)
--- 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