Index: client/1.0/neutral/pkgr_upload.eagle ================================================================== --- client/1.0/neutral/pkgr_upload.eagle +++ client/1.0/neutral/pkgr_upload.eagle @@ -675,28 +675,40 @@ proc stagePackageFiles { language version platform fileNames } { variable checkoutDirectory variable fossilAddCommand if {![verifyThereAreNoChanges]} then { - error "cannot stage package files: there are pending changes" + error "cannot stage files: there are pending changes" } if {![verifyThisIsTheCorrectProject]} then { - error "cannot stage package files: wrong project" + error "cannot stage files: wrong project" } if {![verifyThisIsTheCorrectBranch]} then { changeToTheCorrectBranch if {![verifyThisIsTheCorrectBranch]} then { - error "cannot stage file: still on wrong branch" + error "cannot stage files: still on wrong branch" + } + } + + set newFileNames [list] + + foreach fileName $fileNames { + if {![createOpenPgpSignature $fileName]} then { + error [appendArgs \ + "cannot stage file \"" $fileName "\": OpenPGP signing failed"] } + + lappend newFileNames $fileName + lappend newFileNames [appendArgs $fileName .asc] } - set relativeFileNames [getRelativeFileNames $fileNames] + set relativeFileNames [getRelativeFileNames $newFileNames] - foreach fileName $fileNames relativeFileName $relativeFileNames { + foreach fileName $newFileNames relativeFileName $relativeFileNames { file mkdir [file join \ $checkoutDirectory $language $version $platform \ [file dirname $relativeFileName]] file copy $fileName \ @@ -974,11 +986,56 @@ if {[isEagle]} then { set sender [lindex $args 0]; # NOTE: Disposal. set e [lindex $args 1]; # NOTE: Disposal. } - puts stdout "SUBMIT CLICKED" + if {[haveArgumentData]} then { + set apiKey $argumentData(apiKey) + set package $argumentData(package) + set patchLevel $argumentData(patchLevel) + set language $argumentData(language) + set version $argumentData(version) + set platform $argumentData(platform) + set fileNames $argumentData(fileNames) + + ::PackageRepository::probeForOpenPgpInstallation + ::PackageRepository::openPgpMustBeInstalled + + # + # NOTE: THIS BLOCK REFERS TO SEVERAL UNTESTED PROCEDURES. + # + if {0} then { + stagePackageFiles $language $version $platform $fileNames + + if {![commitPackageFiles \ + $package $patchLevel $language $version checkin]} then { + error "failed to commit package files" + } + + set script [createRepositoryScript \ + "" $checkin $language $version $platform $fileNames [list]] + + set scriptFileName [file join \ + [::PackageRepository::getFileTempDirectory PKGR_UPLOAD_TEMP] \ + [appendArgs pkgr_upload_ [::PackageRepository::getUniqueSuffix]]] + + writeFile $scriptFileName $script + + if {![createOpenPgpSignature $scriptFileName]} then { + error [appendArgs \ + "cannot submit package metadata: OpenPGP signing of \"" \ + $scriptFileName "\" failed"] + } + + set certificate [readFile [appendArgs $scriptFileName .asc]] + + submitPackageMetadata \ + $apiKey $package $patchLevel $language $script $certificate + } + } else { + error "cannot initiate package submission: one or more fields missing" + } } # # NOTE: This procedure is an event handler. It handles the clear button in # Tk and Eagle. It is used to clear the package submission data. The Index: client/1.0/neutral/pkgr_upload.eagle.asc ================================================================== --- client/1.0/neutral/pkgr_upload.eagle.asc +++ client/1.0/neutral/pkgr_upload.eagle.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYWKfkAAoJEFAslq9JXcLZRrUQAMM4co00dvSOk9elI0rDESzR -v+vhj8vQaQe9Ec9MyYydh7ffz+gay3EgjWYNFsQddN+Y12zB2ASJ6ITLefMwyN0G -CP2oeQCkANYyTTdZpncXQV2o3TlS3rNT8p918O2orIsvLGJqfvyUY4Sd28YefJHm -0OYqWiF568/cXlvRhymfD1y6T9VeqxpVcVhQh5jFqYSnSYGITVlImMG6tEAtDH9r -cYRlcbhzqca91KlviOaLCS8kSxMNoueOUEZuCkz8aotroLQpTE2mE38j6e/bFpCW -r5bbebwkxI+gzAyyIw/UcWKp+yF1hqPyZpSVe5FEF4fULpxLK7C5tUFpoXngOG+a -DG4iXoHDS+nG6q4ePyA3GcpbmQzgDQRJrzr6CdnRekqegEvuPlqmQbiFMk3q3jnz -OtlpHdg1gBVAbC6NjJPoYZ3dk9XRsfdL3topnFb9qpNJ4Y0PK4Pqd51vZ5OYAH+u -BbZfhkmkDYAmli5u1xRqQndtQisx6hwJp/VA56slmX/tr0crCHtqrzYa58zKYdeZ -tuulEWPc4+fS1ZyZkoGs975tvr0ZqyR5zmL9l4ro9LB/qJI2p4NOLPoMw2v/jvgA -bIiqqqSPyXvbZZ6z0Ih5kt81gjlgUXfla7Vx2FZZrf90p0ax5PxVPALxCJr87q7x -IefY5AS+gmge1ndLJup7 -=U8ox +iQIcBAABCAAGBQJYWLSdAAoJEFAslq9JXcLZgfQQAKRUS5oidbWdhkKiiXeGCgW2 +PhYp3OlH0AnvSno+GvvQdi3Mja6SM7V59kZ7DPShNmhq+ofTRuszq3HhEbcGYGFE +8YT0vJdmGrnvtM69WauoCrAKQbVcJtIDPAqWhktGbk3M7ZyRnq/HK1NDajzZRerp +aN7mgTAmOAaVBBwlnb99mJhcLwQm9y4bYMyzl/lP/lUp3oXvW/ItGgjMHdm49JJW +p9k0cPLi+XPN+uGzulLU+PgXnleI8mYGDIbB+XRJnNRxkXVvEo3d4yWQZPRcrIhq +0+0Kd6rkhQ7d1OBCYu5rXMP1LChEoGN+T/icJ7UWGTVDpzgaHNMKH6T5KZFQOmjQ +n01iC+/xq/fpJCNKdJ1if5WpZ37xzs/h+lTyeDwcL26Xs3nvCK0yqrmFVIVwTKvW +mr/Zcf1g1bT19c9doRnA8Q9qxX0UgpMfmJ6tS7EHLwafrkzM1fEenov+pTpK1CAm +rGkTvzhbqxswO8omVlhZ7HnuM5dxzoo2Ug+wP16am2ml6n5LXbDJg88rVFAJxSbb +zYPWMCOYCJzU5lomS12Kfr4GnyURwhtnIZEAkwwZsj830s7S8kVA6NoKlSOM5kAn +PZtPh/9FkLvWz9nEQBC+b3JB+c0i8wVbB5PiTvhmb6elBzN1XjcJDPgKyfkerLsq +to++wNe/7tNB2qkG46dq +=az0t -----END PGP SIGNATURE----- Index: client/1.0/neutral/pkgr_upload.eagle.harpy ================================================================== --- client/1.0/neutral/pkgr_upload.eagle.harpy +++ client/1.0/neutral/pkgr_upload.eagle.harpy @@ -19,50 +19,50 @@ None Mistachkin Systems - f1058aa3-4aee-4a6e-8e77-c02427c8201d + fd93a0b2-8bdb-4cdf-893c-c43f65ac8610 SHA512 Script - 2016-12-20T03:37:46.3251953Z + 2016-12-20T04:33:08.7851562Z -1.00:00:00 0x9559f6017247e3e2 - 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 Index: client/1.0/neutral/pkgr_upload.eagle.harpy.asc ================================================================== --- client/1.0/neutral/pkgr_upload.eagle.harpy.asc +++ client/1.0/neutral/pkgr_upload.eagle.harpy.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYWKflAAoJEFAslq9JXcLZCDIP/1HAupsHCOwmt8+u2yEuc0fI -fZ4uoUWCWyH5rTEA0/jqSVmEm5mbIDv2zegCxu5QwTMBMTBttV/bldl+8DNbOXib -Jmu3kt258qZudTYyKIJvJHf5P5Hgoc2phhkzrIPgwhW5GVAISZnBl2TrZzqgMIfj -0XqmV84158/2MQGLWzbNmtZXzZU5vMiwC51pzTz9pJI5xg6p+N7gozffgJ5Y5N+2 -nCeBywpUlHdsMUaJN2QdoxTAPBJId6I0MON/tGt0NY1mfeAO6INs6DLRLC8wS/XE -yB8AYVjClL+6Lth2KlP9/ujws0q2rc4OCuU76XSjLy1d6zYdxhF0PCl7IvnifcMM -ky6EiRnT+8W2/FcZ+wx8kr5D5VOvH9HpdUu/5KrrYtDk1wFOTWX0ZVYtZ/WHWEyY -DJ2IotRGt0NY3xCa+EYjmy29VkxS3tAM4Sbxuoz2P5pdgJqYW+QerCGPfkoRL8Bm -uUFkSxN2YsJm5t1iP6SeRvuGHy6moHS9+Jqq6f8lfEicqavoNS9wXYYKq2KyMtQ0 -R4/v9y2NDSN7Oxl1Kx/ew9nidC0mliEW6fIbQnkAWwBCTZVNSxT0wE4HK1Kasd8M -5iiYOYrul7LIsebYYd7U4SWMgpo9Q8dK/UetRWgFbQgIherE7DKPDMVlqvyAdllG -pgzAr2+dpmZsA4NCUim8 -=3gG9 +iQIcBAABCAAGBQJYWLSgAAoJEFAslq9JXcLZVd0QAKUBzRGk3r/tR81EhTG5dyVF +PcRoaG6zmYt2874uyNhE8nXitFN6uWtm4YndJFvHSM4OErEW8mSfTadVojLfovvB +h1ademTAWGKCPfWln7FzeMhV5LAKm5XWVl5jML1/vdjKK8lY2tLkx+cuUVNPvL/8 +hSyYJAPQlQpf1kd66gPfg34GsF7Xm1nEkaU7mqfiosfflOUAX3KDqt8BhN3SFXG7 +bLJwoue0RXDKFQH9P8GK2TzAwawAuGziXf93bx6UNRAwp4f/yOk2Q+e/2bTHs6Qq +EZvN1EBgsXqwy/oe4227xciW5sVYJ48rDuPSg1IMOEnRchEjMmE+4F/aSroKbYzm +TqERUfxMLyGL6hgJd/V5xGvATeFqIUQknPNmzbAkpwxPTe1PUzUCInx/qs3t22dn +Kcw6UBnceMEL8ZU5WAR9y8vzqjbvDqn7G6VeeyTnv1bsqxlFphRMhfQ+9qeUUIuz +6jmn+9dC5w8s5giohCAtpOWj7ege1zTDTzmHQ9QFC7MTY7h1jUZIy80Iex9+98tq +jLLcecuQjbErVo7t46x++ztIfcs6+/Dw2TGF94Yd3lI8UoA512SfFM45VWfTfI2X +F1txj4MX2eEJXqCGbScXZKsgAs1UVS4hONB4YPHN1Khaia1B/MzyIr64yUdWBTvv +e4FKNzIprq5MQ/dP4yYM +=wYlA -----END PGP SIGNATURE-----