Now available via the Official GitHub Mirror
Also known as the "Package Downloader Client".
Part of the Package Client Toolset (see "pkgu.eagle" and "pkgr_upload.eagle").
The Package Client Toolset is now considered production quality.
View documentation for version 1 of the Package Client Toolset
Package Client Toolset Source Code Repository
Download the Package Client Toolset installation script for Linux and macOS
The Package Downloads Client is not typically invoked directly; instead, it is (optionally) used by the scripts fetched from the Package Repository Server in order to download package files in a secure and orderly manner.
The overall workflow is that the Package Repository Server returns a signed script block that will be responsible for (eventually) providing the requested package. Generally, this will involve use of the "helper" procedures provided by the Package Downloads Client; however, this is not a requirement, i.e. the signed script block returned by the Package Repository Server is free to provide the package (or not) in whatever way it wants.
Here is an example of this usage:
apply [list [list] {
set fileNames [list]
lappend fileNames [file join tcllib1.15 aes aes.tcl]
lappend fileNames [file join tcllib1.15 aes pkgIndex.tcl]
set options [list \
-persistent false -usePgp true -useAutoPath true]
package require Eagle.Package.Downloader
::PackageDownloader::resetCookieAndLoginSimple
::PackageDownloader::downloadFiles tcl 8.4 "" $fileNames $options
::PackageDownloader::logoutAndResetCookie
}]An important thing to remember is that all downloaded package metadata and files have their signature(s) checked before being used.
This project is sponsored by Eyrie Solutions.