X-Git-Url: http://git.scottworley.com/pinch/blobdiff_plain/a72fdca967a7ef8c996757b0992297d2d5c1004c..9f936f16fa5cec8d983cd2ed4006f6806a67e234:/pinch.py diff --git a/pinch.py b/pinch.py index d4728fe..8fe7df1 100644 --- a/pinch.py +++ b/pinch.py @@ -34,7 +34,7 @@ from typing import ( # Use xdg module when it's less painful to have as a dependency -class XDG(types.SimpleNamespace): +class XDG(NamedTuple): XDG_CACHE_HOME: str @@ -177,7 +177,7 @@ class ChannelSearchPath(TarrableSearchPath): release_name=new_gitpin.release_name, tarball_url=self.table['nixexprs.tar.xz'].absolute_url, tarball_sha256=self.table['nixexprs.tar.xz'].digest, - git_revision=self.git_revision) + git_revision=new_gitpin.git_revision) # Lint TODO: Put tarball_url and tarball_sha256 in ChannelSearchPath # pylint: disable=no-self-use @@ -244,8 +244,8 @@ def parse_channel(v: Verification, channel: TarrableSearchPath) -> GitPin: v.status('Extracting git commit:') git_commit_node = d.getElementsByTagName('tt')[0] - channel.git_revision = git_commit_node.firstChild.nodeValue - v.status(channel.git_revision) + git_revision = git_commit_node.firstChild.nodeValue + v.status(git_revision) v.ok() v.status('Verifying git commit label') v.result(git_commit_node.previousSibling.nodeValue == 'Git commit ') @@ -260,7 +260,7 @@ def parse_channel(v: Verification, channel: TarrableSearchPath) -> GitPin: channel.table[name] = ChannelTableEntry( url=url, digest=digest, size=size) v.ok() - return GitPin(release_name=title_name, git_revision=channel.git_revision) + return GitPin(release_name=title_name, git_revision=git_revision) def digest_string(s: bytes) -> Digest16: @@ -490,13 +490,14 @@ def extract_tarball( def git_checkout( v: Verification, channel: TarrableSearchPath, + pin: GitPin, dest: str) -> None: v.status('Checking out corresponding git revision') git = subprocess.Popen(['git', '-C', git_cachedir(channel.git_repo), 'archive', - channel.git_revision], + pin.git_revision], stdout=subprocess.PIPE) tar = subprocess.Popen( ['tar', 'x', '-C', dest, '-f', '-'], stdin=git.stdout) @@ -581,7 +582,7 @@ def check_channel_contents( extract_tarball(v, channel, channel_contents) check_channel_metadata(v, pin, channel_contents) - git_checkout(v, channel, git_contents) + git_checkout(v, channel, pin, git_contents) compare_tarball_and_git(v, pin, channel_contents, git_contents)