diff options
author | root <root@localhost> | 2013-02-14 00:00:00 +0000 |
---|---|---|
committer | root <root@localhost> | 2013-02-14 00:00:00 +0000 |
commit | 192befdb62bed177fc81db2f14246294e6ad9e0c (patch) | |
tree | e5d62116bf12756ae40db4bcef3602c94047ea10 /git-remote-gcrypt | |
parent | b1f7d3ec225f5e89766be53318e56c39b39196ba (diff) | |
download | git-remote-gcrypt-192befdb62bed177fc81db2f14246294e6ad9e0c.tar.gz |
Request signature on manifest before uploading pack
Just to ensure that the user signs the push before we upload any files
(pack or manifest) to the remote.
Diffstat (limited to 'git-remote-gcrypt')
-rwxr-xr-x | git-remote-gcrypt | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/git-remote-gcrypt b/git-remote-gcrypt index 89308c7..3fdb932 100755 --- a/git-remote-gcrypt +++ b/git-remote-gcrypt @@ -458,7 +458,7 @@ do_push() make_new_repo fi - trap 'rm -f "$TmpPack_Encrypted" "$TmpObjlist"' EXIT + trap 'rm -f "$TmpPack_Encrypted" "$TmpObjlist" "$TmpManifest_Enc"' EXIT if isnonnull "$Branchlist" then # filter through batch-check to mark only the commits we have @@ -499,24 +499,27 @@ EOF then pack_id=$(pack_hash < "$TmpPack_Encrypted") Packlist=$(append "$Packlist" "$Packpfx$pack_id $key_") - PUT "$URL" "$pack_id" "$TmpPack_Encrypted" fi - rm -f "$TmpPack_Encrypted" - rm -f "$TmpObjlist" - trap - EXIT - - # Update manifest + # Generate manifest echo_info "Encrypting manifest to \"$Recipients\"" echo_info "Requesting manifest signature" TmpManifest_Enc="$Localdir/manifest.$$" - trap 'rm -f "$TmpManifest_Enc"' EXIT (xecho "$Branchlist"; xecho "$Packlist"; repoidstr; xecho "$Extension_list") | PRIVENCRYPT "$Recipients" > "$TmpManifest_Enc" + # Upload pack + if [ -s "$TmpObjlist" ] + then + PUT "$URL" "$pack_id" "$TmpPack_Encrypted" + fi + rm -f "$TmpPack_Encrypted" + rm -f "$TmpObjlist" + + # Upload manifest PUT "$URL" "$Repoid" "$TmpManifest_Enc" PUT_FINAL "$URL" |