Index: client/pkgr.eagle ================================================================== --- client/pkgr.eagle +++ client/pkgr.eagle @@ -145,21 +145,21 @@ return false } proc getLookupVarNamePrefix {} { - return ::rpkg_; # TODO: Make non-global? + return ::pkgr_; # TODO: Make non-global? } proc getLookupVarNameSuffix {} { return [appendArgs \ [string trim [pid] -] _ [string trim [clock seconds] -] _ \ [string trim [clock clicks -milliseconds] -]]; # TODO: Bad? } - proc getLookupApiKey {} { - set varName [appendArgs [getLookupVarNamePrefix] api_key] + proc getLookupApiKeys {} { + set varName [appendArgs [getLookupVarNamePrefix] api_keys] if {[info exists $varName]} then { return [set $varName] } @@ -168,11 +168,11 @@ if {[info exists env($varName)]} then { return $env($varName) } - return ""; # NOTE: System default, which is "public". + return [list]; # NOTE: System default, which is "public-only". } proc getLookupBaseUri {} { set varName [appendArgs [getLookupVarNamePrefix] base_uri] @@ -234,15 +234,22 @@ return $requirement } proc getLookupData { apiKey package version } { + variable verboseUriDownload + set uri [getLookupUri $apiKey $package $version] if {[string length $uri] == 0} then { return "" } + + if {$verboseUriDownload} then { + pkgLog [appendArgs \ + "attempting to download URI \"" $uri \"...] + } if {[isEagle]} then { set data [uri download -inline $uri] } else { variable quiet @@ -443,19 +450,19 @@ # files created for the script verification process. # set script(cleanup) { if {[string length $fileName(2)] > 0 && \ [file exists $fileName(2)]} then { - if {![info exists ::env(rpkg_keep_files)]} then { + if {![info exists ::env(pkgr_keep_files)]} then { catch {file delete $fileName(2)} } unset -nocomplain fileName(2) } if {[string length $fileName(1)] > 0 && \ [file exists $fileName(1)]} then { - if {![info exists ::env(rpkg_keep_files)]} then { + if {![info exists ::env(pkgr_keep_files)]} then { catch {file delete $fileName(1)} } unset -nocomplain fileName(1) } } @@ -917,23 +924,47 @@ variable verboseUnknownResult; # DEFAULT: false if {![info exists verboseUnknownResult]} then { set verboseUnknownResult false } + + # + # NOTE: Emit diagnostic messages when a URI is fetched? + # + variable verboseUriDownload; # DEFAULT: false + + if {![info exists verboseUriDownload]} then { + set verboseUriDownload true + } } proc main { package version caller } { # - # NOTE: Issue the lookup request to the remote package repository. - # - set data [getLookupData \ - [getLookupApiKey] $package [getLookupVersion $version]] - - # - # NOTE: Attempt to grab the lookup code from the response data. - # - set code [getLookupCodeFromData $data] + # NOTE: Get the list of API keys and try each one, in order, until + # the package is found. + # + set apiKeys [getLookupApiKeys]; lappend apiKeys "" + + foreach apiKey $apiKeys { + # + # NOTE: Issue the lookup request to the remote package repository. + # + set data [getLookupData \ + $apiKey $package [getLookupVersion $version]] + + # + # NOTE: Attempt to grab the lookup code from the response data. + # + set code [getLookupCodeFromData $data] + + # + # NOTE: Did the lookup operation fail? + # + if {[isLookupCodeOk $code]} then { + break + } + } # # NOTE: Attempt to grab the lookup data from the response data. # Upon failure, this should contain the error message. # Index: client/pkgr.eagle.harpy ================================================================== --- client/pkgr.eagle.harpy +++ client/pkgr.eagle.harpy @@ -19,32 +19,32 @@ None Mistachkin Systems - d4dc6ffe-bc7d-4c54-bd96-1da84e25c234 + bfdbe096-dec1-44fd-8613-e85207fd978f SHA512 Script - 2016-08-17T06:17:49.1208516Z + 2016-08-17T17:57:27.3230000Z -1.00:00:00 0x2c322765603b5278 - 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