Index: client/1.0/pkgd.eagle ================================================================== --- client/1.0/pkgd.eagle +++ client/1.0/pkgd.eagle @@ -947,21 +947,22 @@ # literal strings "8.4", "8.5", or "8.6" when the language is "tcl" # -OR- the literal string "1.0" when the language is either "eagle" # or "client". The fileNames argument must be a well-formed list # of file names to download, each one relative to the language and # version-specific directory on the package file server. The - # persistent argument should be non-zero if the downloaded files + # options argument must be a dictionary of name/value pairs. The + # -persistent option should be non-zero if the downloaded files # should be saved to permanent storage for subsequent use. The - # usePgp argument should be non-zero when an OpenPGP signature file + # -usePgp option should be non-zero when an OpenPGP signature file # needs to be downloaded and verified for each downloaded file. The - # useAutoPath argument should be non-zero to modify the auto-path - # to include the temporary or persistent directories containing - # the downloaded files. + # -useAutoPath option should be non-zero to modify the auto-path to + # include the temporary or persistent directories containing the + # downloaded files. The -allowUpdate option should be non-zero to + # allow existing package files to be overwritten. # # - proc downloadFiles { - language version fileNames persistent usePgp useAutoPath } { + proc downloadFiles { language version fileNames options } { variable clientDirectory variable persistentRootDirectory variable temporaryRootDirectory variable viaInstall @@ -976,10 +977,22 @@ } else { verifyPersistentRootDirectory set persistentDirectory $persistentRootDirectory } + set persistent [string is true -strict \ + [getDictionaryValue $options -persistent]] + + set usePgp [string is true -strict \ + [getDictionaryValue $options -usePgp]] + + set useAutoPath [string is true -strict \ + [getDictionaryValue $options -useAutoPath]] + + set allowUpdate [string is true -strict \ + [getDictionaryValue $options -allowUpdate]] + set downloadedFileNames [list] foreach fileName $fileNames { if {[string length $fileName] == 0 || \ [file pathtype $fileName] ne "relative"} then { @@ -1015,11 +1028,12 @@ downloadOneFile $language $version $fileName $downloadFileName $usePgp lappend downloadedFileNames [list \ $fileNameOnly $directory(temporary) $directory(persistent)] - if {$usePgp && ![isOpenPgpSignatureFileName $downloadFileName true]} then { + if {$usePgp && \ + ![isOpenPgpSignatureFileName $downloadFileName true]} then { downloadOneFile $language $version [appendArgs $fileName .asc] \ [appendArgs $downloadFileName .asc] $usePgp lappend downloadedFileNames [list \ [appendArgs $fileNameOnly .asc] $directory(temporary) \ @@ -1039,13 +1053,14 @@ file mkdir $directory(persistent) set command [list file copy] # # NOTE: When updating the package repository client files, always - # use the -force option to overwrite existing files. + # use the -force option to overwrite existing files. Also, + # if we are allow updates, use the -force option. # - if {$isClient} then { + if {$isClient || $allowUpdate} then { lappend command -force } lappend command -- lappend command [file join $directory(temporary) $fileNameOnly] Index: client/1.0/pkgd.eagle.asc ================================================================== --- client/1.0/pkgd.eagle.asc +++ client/1.0/pkgd.eagle.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYBnwfAAoJEFAslq9JXcLZnZgP/2Fj/Nk8TFnBGYuFBi61PEb8 -8PDfeQwsKVyhdYpQ3I3b1v3x2XNFY5vVKELwnU+j4YdJJeV9iIcMoP0FuV2HukA7 -5AU+Wa/gFbAdsqEjJDUe7Z2wtXwX/mssy4Hiql6z+el0iv4pC40kJ3SxvtbtrH9C -o1SdBNSdxxkprfgfYKS3jnk6yZ0qrpbAZzTBLa/Y5Es9Va3kcJBXNaCCLWze2KxK -pUbiwlrbuoI+m8FIg0aVT11gtO7cMQMaNtHj8kKLXiUfrHn83nLtA8NQcXaVDPs9 -3Jq2IrBX+FV2EImRn7Cw3mvhTqDSatxuwRm9twFnb1+oXhAV0oDWWZylPAL+J9FM -BOCR8ApeWQ2i06QZDef7DCj7lZpcDY3738PRSS8hik2PE43/epadAN5s3rz7gBAj -N+kkjnrx26U6a93fZZMrX+sxQje/sEhfGw5EMHMwM/5Nql7fMs99J2Pb2UzKLqHn -H4HqmOXkfWh6VJ1wOlWU3kPJc83yiyLtKjuBx9+QnvXT/I1ENs8390py2V9BSSFV -tOmS8e14UBr/xciO6LYfTsIwgpOC8ajgbOLLByF7KIvKzX5FXByhgyfeQRywJKa5 -DwV/k2svs4rlgc/P+VEA84ZGeMNLA400pBnw5gcDI4yKdqi4krSNjiU+QF6Hte6B -W4X4aozI+mRbcrb7jmxy -=BeBX +iQIcBAABCAAGBQJYBrbKAAoJEFAslq9JXcLZpzUQAMDS3tn2KmvGpDjiGbpynEOh +OtZZMkaDmUvDVcMKO8Oqf7jdyCu3WcRdHD8AegsICNNtfWbQ7FQ4luAWFxRpZx0n +Dx8EFVD+1gpImal0MHPreqqaLLt7ROyz2AOfAkI/4BslDylIuXMSMO6QM3emL6wR +zg3KvwObs7k8H+OCqUtXEp3NBKhcybxApx8MAd3FDMl29g98OqwAIsj8f79NOyLG +zXy+/lH/dWgkYrB715AvP4Obqq/sVwt/7N611/ZTUdce7JYYV2/fI00US1GmcXb0 +QQ3vH4sfgioTj8Qp4sCvGByElECtptEuqtjV6UeZJlEs8U2J+OsbzXui9wmT+CbT +tGJpxzy1+ED2hUmwsvyE0KDeZcFIAr61Q0rF8wtlm0MHmSxGCTd2VOj+hbKLbIqU +pwHVdIxiDr1011CS82y1ORZ3l4iwU6pkVRPgXE0Gy4JvRuyoOp2rtcryYtDzbLsf +DMP9F3poBk2Inl5xkwLRIsbKbpKXCX2/3X2dTVTFoZ5fo2DMV8aQg9iinQXFYBxM +3Tp9KIg1f18dz2uPEF3rbvsmXEQiHKD8uwHWZGGp1ZLnu3LcyqfAHoYMggt7PzeO +pInVjSdDGEitIZjWm0eKIFWTKOaSJKb2wpOeBa1lCcqKh6+zKSX8geHHHw5Fea9z +z+WhrvHbSNY7fVbZYrfD +=SjxQ -----END PGP SIGNATURE----- Index: client/1.0/pkgd.eagle.harpy ================================================================== --- client/1.0/pkgd.eagle.harpy +++ client/1.0/pkgd.eagle.harpy @@ -19,50 +19,50 @@ None Mistachkin Systems - 41bb98f8-a037-4533-9f6c-6d8d647b97a5 + eea9d859-1ddf-49aa-ac3f-9a9df03d5df8 SHA512 Script - 2016-10-18T19:46:18.4688750Z + 2016-10-18T23:47:54.3204375Z -1.00:00:00 0x9559f6017247e3e2 - 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 Index: client/1.0/pkgd.eagle.harpy.asc ================================================================== --- client/1.0/pkgd.eagle.harpy.asc +++ client/1.0/pkgd.eagle.harpy.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJYBnwgAAoJEFAslq9JXcLZFt4P/RJXskGeOawNGD8r37FVCsqr -BJlRKzmeH6pG6TNMcC0IIJSo4GQ0lbX+cCGXhvdM3M84+TYgnJ8jszkKWTFRamoB -sZOke1p5CN1pb8OEgWvuVNxlZPYk25P3MccBAAxkDThi/2CDpu9Sq4LqTAwwqy09 -FMtvS0SZUnJ63bz1gp0f6HAuI5JZMjJSWvKh1U/hRwY4DJn8NP2gCX9QM/gMH+5x -Mr66BejiYbSLq46nZERaowJM3zh19wdliZmai8tNnZ4lBhzA3q4qg2O1V59gA/4K -sn/honjfHF/ql6rITSMhHFglNyxur0VvVEeMcBw4AlxTbMV1auJw7IM2JzGjeca9 -s+w9DAYZDbpgQ05OVqXWZBGuOGDqNhZJMxm1KT20xTZHz/Gxh2qnpZnXu0n8xfok -Xgl3FskWgEeqakIXu6Ms5ud/mdJ6jHTaHF+AXrVdfGmflLKFhR3xwGM0sKpEJR5a -aG+WXOlTJ6SI6x2JL6COZnjHh4/0YulPoIjcZwbN6nQxjbiFQeMWPC0wHkvLWeJd -SWG1NYyJkLBz1fM7Fuq8jQ/lodUk3rFh4m+OBFN2VtdwVmmqhFaUUTneu4juQ7ml -4gEt4QPVh1m3OoLxCYmg30ut79SyaY4tErHQcCJMl8tRpSkeft8qOKfVQe3SqzGD -4KMJD+5Z4rwqbprTtcJk -=WoGT +iQIcBAABCAAGBQJYBrbLAAoJEFAslq9JXcLZ6pYP/jburWsK+qXKcGe+PjWFNu67 +PgVqja4rp5stefKGmWUtXTHF9Eavna7K3fvsDkfoweZFq7KgmD2AUnRgNfAOh+g6 +C+Scq8vxx4S0l/aAYYi/tp5jWWRCa4VLq1QF5ButiK/+iXtDP3zCX5t2o2HWxT07 +5uZ+fA9XMWLb3lcCqokqoUSqfg5TV8scf5xHBsdiPeT8lb2Z5cDVDmrhK2Z8aIZ7 +eLHwQNVrEX0gH5XendHjcoYdX54qs28OViqPeQH66p9VQGqnUVjTdc2i+p5d/fBe +FZU8O8ED3lhxT/Ws5tUUvF50p8mO4Ex5zTNS+XBKS3TWE2RD1mLdODbHTnxkwozL +mmluZodl7J4ZFY5roIi9/gdv5AhH2Bjr16eVYfwcQUZuAVgNdX3jOxlNUkDAdBeH +dyTRA3iN75aPZ8HM/sYNfpGg+UMBVu23ZBjRDrgQGHJ+l2l7V9x1aAKsJRF0iDqv +cZ+RM0CwicbsytsDHNFt7DKEKcso2uKq2hrTawX+YiUAxAhRJfQDCkN39A9A10Q1 ++Jj7UDLgoKcf+pwMZsM3Dw+TjOlsY4XE+A7I9Mr2aqJio7xJR7UedEQMsqGjUgGB +lKfTFERStaij8MXMT46rkwIfQuk1nSFkH+1KgaUJvEIGXRvnj2RXAkjNynsKyh0v +qUmiYPNAwlYe5HJo/m38 +=JcB5 -----END PGP SIGNATURE-----