]> Nutra Git (v1) - gamesguru/git-remote-gcrypt.git/commitdiff
Request signature on manifest before uploading pack
authorroot <root@localhost>
Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)
committerroot <root@localhost>
Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)
Just to ensure that the user signs the push before we upload any files
(pack or manifest) to the remote.

git-remote-gcrypt

index 89308c73ed5b79a507b9d4aecb664a09ef7f1729..3fdb932d00a0f7116715c65a42a89bdb385313ae 100755 (executable)
@@ -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"