Index: client/1.0/neutral/pkgd.eagle ================================================================== --- client/1.0/neutral/pkgd.eagle +++ client/1.0/neutral/pkgd.eagle @@ -25,10 +25,20 @@ # parameters used by the package downloader client. If the force # argument is non-zero, any existing values will be overwritten and # set back to their default values. # proc setupDownloadUrnVars { force } { + # + # NOTE: The URN, relative to the base URI, where the Package Signing Key + # may be downloaded. + # + variable openPgpKeyUrn; # DEFAULT: pkg_key + + if {$force || ![info exists openPgpKeyUrn]} then { + set openPgpKeyUrn pkg_key + } + # # NOTE: The URN, relative to the base URI, where a login request may # be sent. # variable loginUrn; # DEFAULT: pkgd_login @@ -81,10 +91,20 @@ variable baseUri; # DEFAULT: https://urn.to/r if {$force || ![info exists baseUri]} then { set baseUri https://urn.to/r } + + # + # NOTE: The URI where the Package Signing Key may be downloaded. This + # should return a payload containing the OpenPGP key data. + # + variable openPgpKeyUri; # DEFAULT: ${baseUri}/${openPgpKeyUrn} + + if {$force || ![info exists openPgpKeyUri]} then { + set openPgpKeyUri {${baseUri}/${openPgpKeyUrn}} + } # # NOTE: The URI where a login request may be sent. This should return a # payload containing the necessary HTTP(S) cookie information. # @@ -399,10 +419,37 @@ set dir $pkgd(savedDir); unset -nocomplain pkgd }]] return "" } + + # + # NOTE: This procedure attempts to download the Package Signing Key from + # the remote server and save it to a local file. This procedure may + # raise script errors. The fileName argument is the name of the file + # where the downloaded data should be written. This procedure is only + # intended to be used from the "pkgr_setup.eagle" tool script and may + # go away in later versions of this package. + # + # + proc downloadAndSaveOpenPgpKeyFile { fileName } { + variable baseUri + variable openPgpKeyUri + variable openPgpKeyUrn + + # + # NOTE: First, build the final URI to download from the remote package + # repository. + # + set uri [subst $openPgpKeyUri] + + # + # NOTE: Then, in one step, download the file from the package file + # server and write it to the specified local file. + # + downloadOneUriToFile $fileName $uri false + } # # NOTE: This procedure returns non-zero if the specified file seems to be # an OpenPGP signature file. The fileName argument is the name of # the file to check, which may or may not exist. The nameOnly @@ -1476,23 +1523,23 @@ # to the auto-path, if any. # return $downloadDirectories } + # + # NOTE: This package requires the package repository client package. + # + package require Eagle.Package.Repository + # # NOTE: This package requires that support for namespaces, which is an # optional feature of Eagle, must be enabled. # if {[isEagle] && ![namespace enable]} then { error "namespaces must be enabled for this package" } - # - # NOTE: This package requires the package repository client package. - # - package require Eagle.Package.Repository - # # NOTE: Attempt to read optional settings file now. This may override # one or more of the variable setup in the next step. # ::PackageRepository::maybeReadSettingsFile [info script] Index: client/1.0/neutral/pkgd.eagle.asc ================================================================== --- client/1.0/neutral/pkgd.eagle.asc +++ client/1.0/neutral/pkgd.eagle.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYGPXDAAoJEFAslq9JXcLZeawP/RlDwTZ/G7e9FdxB4zu2LBJ9 -Cy02LrDALaxo/f40zf1QzPHf0ExVe+1xQ6WxhjUu+xSsbB2ZX3me4KYE2uXzgCfu -om5nn5g6t/yNA1rqQouK33qtK418kZ/d2nwE6WKJqNG7FFfwaw3TQlnCHBea1hv4 -p7mn/KZrWL77bw5Gu3aOKoDO9Dikv3p8F5E1FzwvBwj0eek/0nNaJn7nxyQ5MdhJ -tGdN05QadiABA0qsIksS+1aI7l9t7fh+ex9uNPOLgJbklpc+Zv+mkJlc1RZDaS+b -C2XTO4n0Yp8q3XUVILCsw81LRkHQTGLsV9JjApqvd1pvRrdKDadbXXCfePCRkCeJ -afpgW00XQgpqn7l7EYXobWTf7nUOwuW810vSbmGy+57vmY7c5yQ0aZGCqVUFJTkP -WcErHouY57ZwqDw8Z1EDjvfUJBxEM4EabUvOtjozubfqq7oTpwDpME+rh3hdmodY -WjwJ4tSb0MwqeQjme6MgOCJ53vj/y6AnefASHP7QJNDkRmGFP35YlNR4PPgdlZjW -rMpzH4dIZrJ7+HfxqIMvbvqzrrGZLS1eE7PpHzXAzDTeDUs7XYhfzHanmtsh9XEv -2cgZzYXndcR7sDD2konabWC7nOhe+sEA52vZRQzhoV8mT06+YT+AKIXYZQRjik0I -hobzl+ykKohxAyGgLhqE -=kNHN +iQIcBAABCAAGBQJYGXLGAAoJEFAslq9JXcLZJYUP/iEAi9YVXEnXJLzD0bBgiTY/ +ymGNbWIyp0x1XfMFw5uaFDYhZgWxpTz28jdpuVA4rodof1H/7YoksgQrfvc2s92k +SRZZXTeFJJm6dNt3m8JYDFp82GixezdfRLDnWR7dTuAlFvT6Hfr7OsguVfNj5fTj +4wCGU68T2MIFO5NveRsKtThUuTHkZn1AwutorU2CkV3H+Aj0y0SnCcY5Uyyl3IqE +FHGTffleA1BuN/lCoY/K4n1pxiu3zyH2tnaysXCxn0zWpBImIscUyiclridyHI4G +dqNbIXP1t6NMm8bkRsjAUUw7rnadVVlSLC1V98alApbcZDum0GncY66aO6Q2oKhS +pkozH2s+JsGe8+CSahBn0C10rYfbr8TpA1FKu7oNsZvX0v649W59jebOCcF+jUBt +bdxh6hUD3uS4BdAIDHcOXxh8e1cVJEfoiKIweJEfPzkOfssXO/gEyCPmR8Vu9TZU +ySY3Pj9Zpm+0iKHD4MM7+LDlPmawVqGP49su8OdV8R0Z0RaHY7YqydtxDIteQZ6y +VC/ICTck05P/S4+PrBPnZoIc8/PYXu/UXJ96y/4xP0KXsQ3jg4GHHKLYfmGqDS9+ +/Tf3B4O8+wZaXs0nPvHowt+0gDPqlFqKnShc7xrdsSG7OxV70NKXEZHSlsr0IMKU +7khgPr4VaCtJYElFAi49 +=3CUK -----END PGP SIGNATURE----- Index: client/1.0/neutral/pkgd.eagle.harpy ================================================================== --- client/1.0/neutral/pkgd.eagle.harpy +++ client/1.0/neutral/pkgd.eagle.harpy @@ -19,50 +19,50 @@ None Mistachkin Systems - af1f2333-0722-4347-971e-a486312491c0 + f25ac9ec-6bb5-45ca-8d1e-dfb880495a27 SHA512 Script - 2016-11-01T20:05:55.2191719Z + 2016-11-02T04:57:28.6234688Z -1.00:00:00 0x9559f6017247e3e2 - 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 Index: client/1.0/neutral/pkgd.eagle.harpy.asc ================================================================== --- client/1.0/neutral/pkgd.eagle.harpy.asc +++ client/1.0/neutral/pkgd.eagle.harpy.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYGPXEAAoJEFAslq9JXcLZqOsQAJ5z6ZGq3Gi5l7xnLNL7+ONV -ps7lWWnt8TFl9Z6J0PAPI4k51NV7Fo3vhvX46iCmIjkNWeggvLKDru2mCkEL1vGI -jxswm6XPahTK9v0SuzvS3aY1cXcpfeIBn+PdcP9vwO29QaM2K+Dewq5eXF45Llo+ -BVLMqgTkvexZ7hhSmXt3kT3tkqX/GWfnwCQO6LUa2iZ22eAJhTzdwvTB6qeXR+RK -FbIm9oMq0SK0f7fCoRTo57K6KXj1s7JEYTNs4lgIW33qrj/eH0HH5AjSEEExA3Qz -uGXxENCeeIlmwH/9OdzxKs2jI4+cxNKbogoC+u6K2cAjtiaCXMMgWQLgnG85SrYZ -g4MIV9o5FGT9OhBIEMIxfmV63fQJ3+uXc+jvhXmDe81APcSLw8eKXCqSsl9a0EEU -3zVK6lxpPJ6o3JyoLNIQ7pcjlhwVrMFpU0ilYTTv1/0iDUH7ipRmZHmzhtb3h8O0 -5wdMqScxn/8gK4neTipbWAgb6zKQfJ9PcnKgH7f16QJ2a6/pLA9D90sGXoChiJmg -KTPtNE8qV95lPTqHbWjAz/NrEwxw0CfihG9zKolNU4qEhK88YPfnIcDST3gB3VbV -LXsCRdE1xo9G7pGBP2ZOvS6en71OuwYrxobYW6n0pQBgYy+95HFpEckBfAGcYUZC -7GC22iMwYeZYQ3xG1QKE -=awxI +iQIcBAABCAAGBQJYGXLIAAoJEFAslq9JXcLZ80sQAKcuae0KZM4846CHRCl8aFsp +k5hGizq/do+4BTx1hRqNgrmSzrigIeYTfwQ/gNWO2YgIZNuLXbpLiUb3EkV9iLs0 +Naprm6BPlFZeWtlr2rsfhv+sJsHIeolQAdAIB2ivWWkdIidNVH4RKx4OAeKQC7Oz +vlFnSbkEIg/qkFwek3x5cHhoebDMeGr3Sa5PwlxsewOWQl6h0dU4613MGDaNGDkD +8a17Q6Zx9XrrtDDeHk6oqcrpjm2aD6L99OecAQgluyLfMq1FoBQa/V2cSnVfx8Rq +O3dl+kvs2UFIvFjD4GvqjNUQ/TKnAoIxSTW7vL/rLZLjI8M2sZUtq4Mji1chuvHV ++Jl3GbsfiOQXt6XvTiFsOv5oMSw06rcuoKiZZRHrzCyK1yRSCiztmaftUHSR1JQS +b/5+gAA7dLLOvmf0EemWN9cOdFgTXiXvKOERCy8sPqA2OqiPktCflnHV3v7IPgjE +Mf+TsyRqoTaScTNB/caQ0n06XBMDI2VwrAdWSitL27OoIjqxamfA1zGrPhoKHorQ +hFFWgzHdO7KUeUZP3TLQUFX2yLsZPoGQSKeRwx/JQJSHK4wLff657OQ3SlqIZ22k +Eiqy4nQfafdbTi0KPGczQYGu9Wcjo1Ywbs/lcGwYXsGeYlDCQhkfd/agO5wypnHN +y64ZcOsvba2oRZs6xmle +=dZ0E -----END PGP SIGNATURE----- Index: client/1.0/neutral/pkgr.eagle ================================================================== --- client/1.0/neutral/pkgr.eagle +++ client/1.0/neutral/pkgr.eagle @@ -338,10 +338,56 @@ } return false } + # + # NOTE: This procedure attempts to import the OpenPGP keys contained in + # the specified (named) file. Non-zero is only returned if the + # OpenPGP keys are imported successfully. A script error should + # not be raised by this procedure. The fileName argument must be + # the fully qualified path and file name of the OpenPGP key file + # to import. This procedure is only intended to be used from the + # "pkgr_setup.eagle" tool script and may go away in later versions + # of this package. + # + # + proc importOpenPgpKeyFile { fileName varName } { + variable openPgpImportCommand + variable openPgpImportPattern + + if {[string length $varName] > 0} then { + upvar 1 $varName result + } + + if {[isEagle]} then { + set fileName [appendArgs \" $fileName \"] + + if {[catch { + eval exec -nocarriagereturns -stdout output -stderr error \ + [subst $openPgpImportCommand] + } result] == 0} then { + set result [appendArgs $output $error] + } else { + return false + } + } else { + if {[catch { + eval exec [subst $openPgpImportCommand] 2>@1 + } result]} then { + return false + } + } + + if {![info exists result] || \ + ![regexp -line -- $openPgpImportPattern $result]} then { + return false + } + + return true + } + # # NOTE: This procedure returns the prefix for fully qualified variable # names that MAY be present in the global namespace. There are # no arguments. # @@ -1773,10 +1819,32 @@ set autoRequireGaruda true } else { set autoRequireGaruda false } } + + # + # NOTE: The command to use when attempting to import an OpenPGP key + # file. This must be configured according to the implementation + # of OpenPGP in use. + # + variable openPgpImportCommand; # DEFAULT: gpg2 --import + + if {![info exists openPgpImportCommand]} then { + set openPgpImportCommand {gpg2 --import {${fileName}}} + } + + # + # NOTE: The regular expression pattern used when attempting to verify + # that OpenPGP successfully imported one or more keys. This must + # be configured according to the implementation of OpenPGP in use. + # + variable openPgpImportPattern; # DEFAULT: ^gpg: Total number processed: 1$ + + if {![info exists openPgpImportPattern]} then { + set openPgpImportPattern {^gpg: Total number processed: 1$} + } # # NOTE: The command to use when attempting to verify that OpenPGP is # installed locally. This must be configured according to the # implementation of OpenPGP in use. Index: client/1.0/neutral/pkgr.eagle.asc ================================================================== --- client/1.0/neutral/pkgr.eagle.asc +++ client/1.0/neutral/pkgr.eagle.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYF+xFAAoJEFAslq9JXcLZNdcQALk8aO3AK8YdrMl9bPPyPqVh -QEaeXRWa97VXI5cQkfqlS3E9aManGXbGYdVFCE4l48T1Q9E4qhAmuZWMeqwZxKMY -UWD/M73f7vZOB/ZKov34y86amXh2HrvNsVFoCCZGGskYYc+6lxznRLln6hSFvgYH -nzyDe7HIULwgihDohp3fEjf9oI52VOfqjcm21wNZleI+y8lc+MxHPg5/i0N2NBv3 -nPDc547zvP5vZf0Pr+HDHXpmgcokAskEdPvhEyChjDBaVqUTRBhRPjnpFv15WKL+ -6gVRIyR+5g7A9z6DLL1rnaIvFLVIH7R5nOFOkosW0BKUMdy+OpZKorVks8hF+gHZ -EApokOqKoEOnxLWACpJPYrjBelBmt1g1RhU7fV0FF819LWqqbZ8eBMXZiT/DLAKm -VDWyCHoA0LNMdGztyQUwVE5hsmfR9yaUWuJrgxNKL6Cd3lPkrVq0lFl4Sp13P0lu -V/7Q5DUbk4EToVhP36MuIWJ+O8fVPCoY4FColcroBPPvAwZfNJ0hlYcuQbgbz5HX -qQlmRpBvHoOaZabEJPZm414fGxT+KbY7jrZ8Fqr2bBoY07lP469ZSAgtmtIJ0xWr -maprVq7ggilQa6gV/KqNaY4R38rHwURceMLIEr22X6566ZTUTlN5KgsXr7lZk/p2 -s2kX1iY7FTqhJ9XZeOcL -=bF8M +iQIcBAABCAAGBQJYGXLBAAoJEFAslq9JXcLZorYQAKdI3tHsJ23+AgnoOTKee8Ni +KMx15fSUYJJA4wrjbwAZplXFfY1NF5YaKzP55de9Ih22EG1dfOQVil9NRJhO6jmT +dz0Yjxj4MC5EXwx2ea2vRxpCTgjlqVmcvaNCvazK4dujdCzWH6anxdNs6dIPIKIc +N0VfMXsLymjrY5udIIMJSVmcVEKvlE4yeMXynikje9T7+GYAS+vdV3AENeOCgPYO +xuSSSS9dR59Z4d/COycg1XswGcBbA8TA1eBDufCQmP68beNRJdrj0Igaz6x8sM8f +aCfKkmgwRIxWKuL/Qdk5HxW2Y95Wx0iWWcazTiwL/w27ryVi6kJQxwpXCfjxs87K +t6ZaKm2WkulvnHvDZ3FXGJZ0sdPnn3NHcqoylVLgNQD2ExRmgMegLHk0o8Q2USwb +lbdY/nrH5RiNcU/3sMBu7VoBiVcY/6qvAMgtAH0vX5uY2VMSQYkf4FJu4s33NXDL +FIfaIvIa3VewSGjqwJMbD939t56WFe5I9/uvTHC3Zn8EGMXx6ADegwe1m46zLNSI +LJj5zJO8z+F46pgU1MpWrEIe2cnkOA3GI5yftfPyJ2xFHqYEd9v+YxMh/i53HQ/W +ml/6VX3rhtLb9JkbNh7D6PXBWEhC4cKLUrrC7s5iOG19QsyQz+6YpJvVUEpPTIjn +1R4MiiAilRgry0j2sl20 +=ZyqK -----END PGP SIGNATURE----- Index: client/1.0/neutral/pkgr.eagle.harpy ================================================================== --- client/1.0/neutral/pkgr.eagle.harpy +++ client/1.0/neutral/pkgr.eagle.harpy @@ -19,50 +19,50 @@ None Mistachkin Systems - 407c6dd9-e272-436d-81a8-ab441fe7be41 + f872ea6b-80f0-4310-ae1b-57d6e1399678 SHA512 Script - 2016-11-01T01:13:15.3383125Z + 2016-11-02T04:58:18.5795235Z -1.00:00:00 0x9559f6017247e3e2 - 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 Index: client/1.0/neutral/pkgr.eagle.harpy.asc ================================================================== --- client/1.0/neutral/pkgr.eagle.harpy.asc +++ client/1.0/neutral/pkgr.eagle.harpy.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYF+xGAAoJEFAslq9JXcLZp/AQAMFRrnsYDo3CW58QyoiE9GWw -GE2nVuONtq48Oi6AnPoU2S1YvjwXjm+Zg69H88ENshaxsrA6ipzfll4ZPkqa1FUN -Ju6fvH09iq/OKuTMDjLxSxW3TRHp6/tnbF0lNufv9+Vecv2hd0DQGE46Je3EhmE0 -h0XC1kFN6/7X8ODyWc9pNq6g8jJqGraBBuOz43ZxkQqYq6PpClRxs+2J6vkjhl05 -09YNKjtxzdWgHjPSxZOhXKOViHPaYrwcp7HAaWsLjN5EtZscjbpNdHgA+e3YUw8N -+qdCJfrcmip9A+VeemlCNEioXqp/82DnD1DQd5ZYVghMBjwsYGw7ichosH88UnlE -leRokzVzUcUP98MR0zFikPGfeV9R5NDZGUfOMLLuNbSRYgwjL5pdWzJPS957g4hO -j/2fToh2xGkZw0Y2XJYdRpBH2DNqeuKbjbW69fyvyMugsLpzFdl9FOI9HEomnomE -r4bcLNsdAjCCc6wAA2VtgUwzyWKi/lbqiO6EpFEZFOIEuUyA3SP/mIYgQ5Upmjjn -ZMSfwlLAk9tTpMxL6MDCC5xdVBLvHa77Hu5KjQZUiA3I4eWFFHD695JbCFrVON0c -5tNXKMh3q12rTazUoORFmrl3FU8uhnZKy2uiivjXBE+MI5Amomb9ZbaeAI856XXu -GnQpFxaZa/J+uUka6UIT -=s6BI +iQIcBAABCAAGBQJYGXLCAAoJEFAslq9JXcLZppQP/09XUbOgxcyC+UGDYVtF7TTR +06e3lU+6V0F7WWIdf5vdiomwNiUhfmm4AlOTChjFDPwj3het8zw/I8FVUJRq6mQn +uV03GE0b7CtfI/yD/Yu19l4yRBy2RoLZOpxttgrnpyH95PXKB9incLBhoe/gVxpL +xPE44Wu9D5Vi+xDN2XNPR7la1t8dPe0II9rwk5uk0fZ9zYXETVdIrTW+txZ6jB2d +NdCwdku7gH7Wrl1nMBvt88UWQjkUaMnhcZBwB5LWblXv0NQg2rVNsDdumWfGOKH1 +2jCml46mO9IxAAOLUdh5foTCF0wnhaPT2hGP5PVdZbdR0wi2q4rzLtWPzXYIwTV/ +99DaTkI2zhiaTofkqTLRVU+u7/8KTMlMOPa9DLHHTrsmUcQQn97AqVTHvyr6X3Sr +2L6IAW7j9aKgCQcUP583XZOIqRmfyPiGkggVeA3iZ6VNkZ+w0GYJl8smyjxiuUHm +LWaOY2fAsX+7Z8+4EHd0+brEY9VDw1+ibRX8wNlMETj9l1ZzmEbc5nHpGdEe2ecp +Guz+FD38Dm16oxUtFAguwUyC7xDAf2tjzcIpFgSfDfIgL680GYp4VfBF7BS3t4Oa +LdIFfZdk944y9tXPyedHt07hdYw1iOPb8GAgPW2QgCZ/TdWeysrj8XrjYkqOJ3r+ +teiNUOnnSqiNGQ388774 +=Jf/S -----END PGP SIGNATURE----- ADDED client/1.0/neutral/pkgr_setup.eagle Index: client/1.0/neutral/pkgr_setup.eagle ================================================================== --- client/1.0/neutral/pkgr_setup.eagle +++ client/1.0/neutral/pkgr_setup.eagle @@ -0,0 +1,107 @@ +############################################################################### +# +# pkgr_setup.eagle -- +# +# Extensible Adaptable Generalized Logic Engine (Eagle) +# Package Repository Client (Setup Tool) +# +# Copyright (c) 2007-2012 by Joe Mistachkin. All rights reserved. +# +# See the file "license.terms" for information on usage and redistribution of +# this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: $ +# +############################################################################### + +# +# NOTE: Use our own namespace here because even though we do not directly +# support namespaces ourselves, we do not want to pollute the global +# namespace if this script actually ends up being evaluated in Tcl. +# +namespace eval ::PackageSetup { + # + # NOTE: This procedure is used to report errors that prevent this tool + # from running to completion (e.g. invalid command line arguments, + # etc). It may be used to report a specifically error. It will + # always emits the command line option and argument information. + # + proc usage { {error ""} } { + if {[string length $error] > 0} then {puts stdout $error} + + puts stdout "usage:\ + [file tail [info nameofexecutable]]\ + [file tail [info script]]" + + exit 1 + } + + # + # NOTE: Figure out the fully qualified path to the current script file. + # If necessary, add it to the auto-path for the interpreter. The + # necessary supporting packages (i.e. the Package Repository and + # Package Downloader packages) are assumed to exist in the same + # directory as the current script file. + # + variable pkgr_path; # DEFAULT: + + if {![info exists pkgr_path]} then { + set pkgr_path [file normalize [file dirname [info script]]] + + if {![info exists ::auto_path] || \ + [lsearch -exact $::auto_path $pkgr_path] == -1} then { + lappend ::auto_path $pkgr_path + } + } + + # + # NOTE: *TODO* Pre-create the namespace for the Package Repository Client + # package and then forcibly adjust various settings to the values + # necessary for this tool. In the future, this section may need to + # be tweaked to account for changes to the Package Repository Client + # package. + # + namespace eval ::PackageRepository { + variable verboseUriDownload true + } + + # + # NOTE: *TODO* Pre-create the namespace for the Package Downloader Client + # package and then forcibly adjust various settings to the values + # necessary for this tool. In the future, this section may need to + # be tweaked to account for changes to the Package Downloader Client + # package. + # + namespace eval ::PackageDownloader { + variable quiet false + } + + # + # NOTE: Load the Package Downloader Client package now. + # + package require Eagle.Package.Downloader + + # + # NOTE: Verify that the number of command line arguments meets the basic + # requirements of this tool. + # + if {![info exists ::argv] || [llength $::argv] == 0} then { + set localFileName [file join \ + [::PackageRepository::getFileTempDirectory] [appendArgs \ + pkg_key_ [::PackageRepository::getUniqueSuffix] .asc]] + + ::PackageDownloader::downloadAndSaveOpenPgpKeyFile \ + $localFileName + + if {[::PackageRepository::importOpenPgpKeyFile \ + $localFileName result]} then { + puts stdout $result + } else { + error [appendArgs \ + "could not import OpenPGP key(s): " $result] + } + } else { + usage + } +} + ADDED client/1.0/neutral/pkgr_setup.eagle.asc Index: client/1.0/neutral/pkgr_setup.eagle.asc ================================================================== --- client/1.0/neutral/pkgr_setup.eagle.asc +++ client/1.0/neutral/pkgr_setup.eagle.asc @@ -0,0 +1,18 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 +Comment: Eagle Package Repository + +iQIcBAABCAAGBQJYGXLNAAoJEFAslq9JXcLZWOgQAJQOblT0G3YTnnCQrUvBSXP8 +oZEuh1ydO6AYleIPBDf9Vijlpq08Vvc/RhboqnxaC3dv+K3pcwdT7vvG1Lt2gOFH +sWHX+UF5TQVoS7EqOHUsKY54ZeumQRNhHJOuwzgnAy4XCLETdDaLsDJBsak2vYvV +r3vcZLFMby/94LvyPm0sFHQX33oZQoRKmDpHIzEUPQDm8FMD6FnMODC7LKkRxT6j +F37/q/Gz3k83Dhh8z6/7j6XDGDFKzpxvSD5ZieWpazYitO7I51aBJtjHOo62fEVA +9YgatO2YjvVxXP1qf9/28q5VRe1sRbeEO+iTe3Gz7Kw8tc6EKfjVsys5GI0uUQU6 +Hdmy/OB4VaUdbXPqVe9CPKwiaEP7us3Z3w3hcUDz/A2X8jal5mzJRABJxDVKQrXY +vabWEixP5udUshhIL3P2SoMJS315SmtgU+ePwWPeKXHUqTA1tQVgS7L0f4oYFVUW +GuA6VAkiyclh6KABa0h2cdxh1lYm5Ug3NZWhjIoF9932BomW0InvMOfad3QegJzT +DH9JXVqad3otE6bFJlSqmnRU5ySwASVf9dj+hGL5kTGdChFni3yTPxPXEnFhFAD1 +PWVUNAXUqFDLmbD4zrsO8KixoJyLj0HPfK2+/EeHnOCWEB+RbfVRKG/Vav8aancO +TU9qvFomUCvn9AfhGCk8 +=xl+R +-----END PGP SIGNATURE----- ADDED client/1.0/neutral/pkgr_setup.eagle.harpy Index: client/1.0/neutral/pkgr_setup.eagle.harpy ================================================================== --- client/1.0/neutral/pkgr_setup.eagle.harpy +++ client/1.0/neutral/pkgr_setup.eagle.harpy @@ -0,0 +1,68 @@ + + + + None + Mistachkin Systems + d9dcfdc7-8d8a-445d-82ff-7ef5f71f68bc + SHA512 + Script + 2016-11-02T04:59:24.5336250Z + -1.00:00:00 + 0x9559f6017247e3e2 + + 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 + + ADDED client/1.0/neutral/pkgr_setup.eagle.harpy.asc Index: client/1.0/neutral/pkgr_setup.eagle.harpy.asc ================================================================== --- client/1.0/neutral/pkgr_setup.eagle.harpy.asc +++ client/1.0/neutral/pkgr_setup.eagle.harpy.asc @@ -0,0 +1,18 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 +Comment: Eagle Package Repository + +iQIcBAABCAAGBQJYGXLPAAoJEFAslq9JXcLZWnMP/3kU5jcoeydepPaX74eawh+x +sjq5uK/sPZgPkyqzJYGSlNmoMLMP4WpqCDojW0QizC+lMR+1Jt5uVn33hmC7Q24u +3YoyxWIY1dfmWTV7CYxTfeAxh1BgDUoRd+lZtcq5Ii4X8SQr+2VAeVhrEm3P6nWo +Q7I9hT5kzJDeOlEEZk6O6yNldt2ZW9WmZcHYdLjJwIPzDzJRJXQZHHR1MWkRURS5 +6lJUgQfSCbeRQhicIu8lBCozZFnnj2RsXkSfcLXYKpxhR04Y9W7uJNYeaGVdRoTq +2+MDqeISQ8525TcFCy2AiZnZ9HCBf37tTUMqtJJUcuxGuHCMdEy2DZ35F46JAWkW +HHXb3cXGhJ4RNyeHuDzgA0hR9L2bRKac2Td6woWjNWkmjALbMPQWuHp/iX2BJsq7 +7rRwMwIZIwo00oJjcZvxggboFTKeABYyp6DoV0632rP01hugBQtFKYq+QkoGIf27 +bW8OLRETE+d541ETCK1d9F+GGOLK+ZQ/iGIkSCXKElhfDvhwA+rD6FW4SCkCUjEM +wGd1pW8c15Fu69qxoJITyZvdMykTYF7rVjGA+LDm2Vk7uhOJx/uLzeycMiMxr9MJ ++AX/n0apFbTFcvhzxsrJmk1xfqX9O8Ctignj8cBwwo0EXnwqPK1TWRGHOpvrPQps +6idpr8uRsUEIY6gekDZI +=4OVj +-----END PGP SIGNATURE-----