summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis R. Rodriguez <mcgrof@do-not-panic.com>2013-10-21 11:08:28 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2013-10-28 21:32:47 +0100
commit83dfc72a9a425fdceb8cfd14f3ab0b0f8d445814 (patch)
tree9e72ae6f1fdd5e91b7caff5931c23b88b8057af3
parentd602c12115441c653b37317895bcab6bcabae374 (diff)
lib/bpgit.py: add git tree verification support
Upstream commit: 455aae0352d34e97fc5910927428c9f8ff44f77a This verifies that the tree provided has its last commit both tagged and also digitally signed. In short it does: git tag -v $(git describe --dirty) This will be used later. Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
-rw-r--r--lib/bpgit.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/bpgit.py b/lib/bpgit.py
index f4af314a..02f6d8a7 100644
--- a/lib/bpgit.py
+++ b/lib/bpgit.py
@@ -107,6 +107,18 @@ def describe(rev='HEAD', tree=None, extra_args=[]):
return stdout.strip()
+def verify(git_tree):
+ tag = describe(rev=None, tree=git_tree, extra_args=['--dirty'])
+ cmd = ['git', 'tag', '-v', tag]
+
+ process = subprocess.Popen(cmd,
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ close_fds=True, universal_newlines=True, cwd=git_tree)
+ stdout = process.communicate()[0]
+ process.wait()
+
+ return dict(r=process.returncode, output=stdout)
+
def init(tree=None):
process = subprocess.Popen(['git', 'init'],
stdout=subprocess.PIPE, stderr=subprocess.STDOUT,