From: Scott Worley Date: Thu, 9 Apr 2020 23:33:22 +0000 (-0700) Subject: Verify channel tarball metadata X-Git-Tag: 1.0~16 X-Git-Url: http://git.scottworley.com/pinch/commitdiff_plain/f9cd7bdc50fad6c24ac226a6532ecfb81d78cbe2?ds=sidebyside;hp=925c801b763927b3fd3f9071fa017c638d656fe4 Verify channel tarball metadata --- diff --git a/pinch.py b/pinch.py index 1a97f53..c77d891 100644 --- a/pinch.py +++ b/pinch.py @@ -318,11 +318,37 @@ def git_checkout(v: Verification, channel: Channel, dest: str) -> None: v.result(git.returncode == 0 and tar.returncode == 0) +def check_channel_metadata( + v: Verification, + channel: Channel, + channel_contents: str) -> None: + v.status('Verifying git commit in channel tarball') + v.result( + open( + os.path.join( + channel_contents, + channel.release_name, + '.git-revision')).read(999) == channel.git_commit) + + v.status( + 'Verifying version-suffix is a suffix of release name %s:' % + channel.release_name) + version_suffix = open( + os.path.join( + channel_contents, + channel.release_name, + '.version-suffix')).read(999) + v.status(version_suffix) + v.result(channel.release_name.endswith(version_suffix)) + + def check_channel_contents(v: Verification, channel: Channel) -> None: with tempfile.TemporaryDirectory() as channel_contents, \ tempfile.TemporaryDirectory() as git_contents: extract_tarball(v, channel, channel_contents) + check_channel_metadata(v, channel, channel_contents) + git_checkout(v, channel, git_contents) compare_tarball_and_git(v, channel, channel_contents, git_contents)