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.
This commit is contained in:
root 2013-02-14 00:00:00 +00:00
parent b1f7d3ec22
commit 192befdb62

View file

@ -458,7 +458,7 @@ do_push()
make_new_repo make_new_repo
fi fi
trap 'rm -f "$TmpPack_Encrypted" "$TmpObjlist"' EXIT trap 'rm -f "$TmpPack_Encrypted" "$TmpObjlist" "$TmpManifest_Enc"' EXIT
if isnonnull "$Branchlist" if isnonnull "$Branchlist"
then then
# filter through batch-check to mark only the commits we have # filter through batch-check to mark only the commits we have
@ -499,24 +499,27 @@ EOF
then then
pack_id=$(pack_hash < "$TmpPack_Encrypted") pack_id=$(pack_hash < "$TmpPack_Encrypted")
Packlist=$(append "$Packlist" "$Packpfx$pack_id $key_") Packlist=$(append "$Packlist" "$Packpfx$pack_id $key_")
PUT "$URL" "$pack_id" "$TmpPack_Encrypted"
fi fi
rm -f "$TmpPack_Encrypted" # Generate manifest
rm -f "$TmpObjlist"
trap - EXIT
# Update manifest
echo_info "Encrypting manifest to \"$Recipients\"" echo_info "Encrypting manifest to \"$Recipients\""
echo_info "Requesting manifest signature" echo_info "Requesting manifest signature"
TmpManifest_Enc="$Localdir/manifest.$$" TmpManifest_Enc="$Localdir/manifest.$$"
trap 'rm -f "$TmpManifest_Enc"' EXIT
(xecho "$Branchlist"; xecho "$Packlist"; (xecho "$Branchlist"; xecho "$Packlist";
repoidstr; xecho "$Extension_list") | repoidstr; xecho "$Extension_list") |
PRIVENCRYPT "$Recipients" > "$TmpManifest_Enc" 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 "$URL" "$Repoid" "$TmpManifest_Enc"
PUT_FINAL "$URL" PUT_FINAL "$URL"