]> git.scottworley.com Git - pinch/blobdiff - pinch.py
2.1.1: Pin faster
[pinch] / pinch.py
index 8c9e976583ffd4c2e5d049245ee4dc90db1e3742..ed33c928ae6a466c5e27a70ccf2a52d592bc8bc8 100644 (file)
--- a/pinch.py
+++ b/pinch.py
@@ -186,6 +186,8 @@ class ChannelSearchPath(NamedTuple):
 
         channel_html, forwarded_url = fetch_channel(v, self)
         table, new_gitpin = parse_channel(v, channel_html)
 
         channel_html, forwarded_url = fetch_channel(v, self)
         table, new_gitpin = parse_channel(v, channel_html)
+        if old_pin is not None and old_pin.git_revision == new_gitpin.git_revision:
+            return old_pin
         fetch_resources(v, new_gitpin, forwarded_url, table)
         ensure_git_rev_available(v, self, new_gitpin, old_revision)
         check_channel_contents(v, self, table, new_gitpin)
         fetch_resources(v, new_gitpin, forwarded_url, table)
         ensure_git_rev_available(v, self, new_gitpin, old_revision)
         check_channel_contents(v, self, table, new_gitpin)
@@ -727,8 +729,7 @@ def updateCommand(args: argparse.Namespace) -> None:
     command = [
         'nix-env',
         '--profile',
     command = [
         'nix-env',
         '--profile',
-        '/nix/var/nix/profiles/per-user/%s/channels' %
-        getpass.getuser(),
+        args.profile,
         '--show-trace',
         '--file',
         '<nix/unpack-channel.nix>',
         '--show-trace',
         '--file',
         '<nix/unpack-channel.nix>',
@@ -751,6 +752,8 @@ def main() -> None:
     parser_pin.set_defaults(func=pinCommand)
     parser_update = subparsers.add_parser('update')
     parser_update.add_argument('--dry-run', action='store_true')
     parser_pin.set_defaults(func=pinCommand)
     parser_update = subparsers.add_parser('update')
     parser_update.add_argument('--dry-run', action='store_true')
+    parser_update.add_argument('--profile', default=(
+        '/nix/var/nix/profiles/per-user/%s/channels' % getpass.getuser()))
     parser_update.add_argument('channels_file', type=str, nargs='+')
     parser_update.set_defaults(func=updateCommand)
     args = parser.parse_args()
     parser_update.add_argument('channels_file', type=str, nargs='+')
     parser_update.set_defaults(func=updateCommand)
     args = parser.parse_args()