]> git.scottworley.com Git - pinch/blobdiff - pinch.py
Factor out pin check
[pinch] / pinch.py
index e1d8d3bbe859922421f2b34545e5069d1125d2da..1959f450323f742420eb18c20c447c0815a3b3ee 100644 (file)
--- a/pinch.py
+++ b/pinch.py
@@ -602,7 +602,7 @@ def filter_dict(d: Dict[K, V], fields: Set[K]
     return selected, remaining
 
 
     return selected, remaining
 
 
-def read_search_path(
+def read_config_section(
         conf: configparser.SectionProxy) -> Tuple[SearchPath, Optional[Pin]]:
     mapping: Mapping[str, Tuple[Type[SearchPath], Type[Pin]]] = {
         'alias': (AliasSearchPath, AliasPin),
         conf: configparser.SectionProxy) -> Tuple[SearchPath, Optional[Pin]]:
     mapping: Mapping[str, Tuple[Type[SearchPath], Type[Pin]]] = {
         'alias': (AliasSearchPath, AliasPin),
@@ -618,6 +618,16 @@ def read_search_path(
     return SP(**remaining_fields), pin
 
 
     return SP(**remaining_fields), pin
 
 
+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(
+            'Cannot update unpinned channel "%s" (Run "pin" before "update")' %
+            section)
+    return sp, pin
+
+
 def read_config(filename: str) -> configparser.ConfigParser:
     config = configparser.ConfigParser()
     config.read_file(open(filename), filename)
 def read_config(filename: str) -> configparser.ConfigParser:
     config = configparser.ConfigParser()
     config.read_file(open(filename), filename)
@@ -643,7 +653,7 @@ def pinCommand(args: argparse.Namespace) -> None:
         if args.channels and section not in args.channels:
             continue
 
         if args.channels and section not in args.channels:
             continue
 
-        sp, old_pin = read_search_path(config[section])
+        sp, old_pin = read_config_section(config[section])
 
         config[section].update(sp.pin(v, old_pin)._asdict())
 
 
         config[section].update(sp.pin(v, old_pin)._asdict())
 
@@ -656,13 +666,8 @@ def updateCommand(args: argparse.Namespace) -> None:
     exprs: Dict[str, str] = {}
     config = read_config_files(args.channels_file)
     for section in config:
     exprs: Dict[str, str] = {}
     config = read_config_files(args.channels_file)
     for section in config:
-        sp, pin = read_search_path(config[section])
-        if pin is None:
-            raise Exception(
-                'Cannot update unpinned channel "%s" (Run "pin" before "update")' %
-                section)
+        sp, pin = read_pinned_config_section(section, config[section])
         if isinstance(sp, AliasSearchPath):
         if isinstance(sp, AliasSearchPath):
-            assert 'git_repo' not in config[section]
             continue
         tarball = sp.fetch(v, pin)
         exprs[section] = (
             continue
         tarball = sp.fetch(v, pin)
         exprs[section] = (