ADDED client/pkgIndex.eagle Index: client/pkgIndex.eagle ================================================================== --- client/pkgIndex.eagle +++ client/pkgIndex.eagle @@ -0,0 +1,21 @@ +############################################################################### +# +# pkgIndex.eagle -- +# +# Extensible Adaptable Generalized Logic Engine (Eagle) +# Package Index File +# +# 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: $ +# +############################################################################### + +if {![package vsatisfies [package provide Tcl] 8.4]} {return} +if {![package vsatisfies [package provide Eagle] 1.0]} {return} + +package ifneeded Eagle.Package.Repository 1.0 \ + [list source [file join $dir pkgr.eagle]] ADDED client/pkgIndex.eagle.harpy Index: client/pkgIndex.eagle.harpy ================================================================== --- client/pkgIndex.eagle.harpy +++ client/pkgIndex.eagle.harpy @@ -0,0 +1,50 @@ + + + + None + Mistachkin Systems + bd4c7683-b636-4e5a-814d-af281cf8a8e8 + SHA512 + Script + 2016-08-15T21:35:31.1481953Z + -1.00:00:00 + 0x2c322765603b5278 + + K4mwPnHD6CEc7CNyhetY/hJcze09F6WQ50TdOuiQc7T4d4gyTeVa3uyEscWLyuSqqXF1y79Z0GEc + mwCEYr2QffYvtpx+NiAsvuAp+N+awnVxaSa6c40R/6fyQ9mQD3QRPMgZGdVBL4MRLK79mmmQvTXb + fUdZ2Gara7nUJ9wbruYUtzb9Hg5kZe6+CUIQKQ3jE8YRNd4yQcMb80PbjlhWdauXxRiLZzLMC3sd + wgZVVkXMRC5XwgB44LCSoTM/AaJS6if+n6xf3KQ2r2j7AlR65PFY9NRM579zbxBop5ZiPDc15Gen + K5d+XBGp6iM7hpKjfcVfeeWV1Wgcw1lMfgZg32NxwYQFQa8Spt8XUL6UGObCqiy+cjpFZmT7WP66 + uNeUSEbE0Q+HkLsfXu9LcUt5B92GmM6WxQFy6yjRb0rb0Lxwd8hGOcFx3I+1hkDjGwlFK5CdLsx6 + d+KHAQR9qvMrF1+oUy4FwhgcVNJAc95euFy1I4zb8ruFi1L/2u+RPAgGMT97D7RwTA6lSctI7AZ5 + j8DZc/4YTvuyxY2SsOK0j55b5BikxQsAx+tX2cJ1dv3nFSswXS5whoKRAX2b0NSFZwpFAa4EtTyM + 5AJ+2jCO4Vxo78bGqmWxoQnWQ631XzNzrEG9b3sDSeXsuhHTqjdF7/KA0mXA4Tauzun/F0uxd8i7 + aV2k3a9AadTYoG85/wWDU4a1kLa+i4DtiWXpULrjVG2ImNGpUyAqc9Ih5rpp7JlZVc8PsS0hGSPY + yp0vYiXkXN4gGavHSWhsqqoLUomhE50iwFsOrr5PxlhOPC1NMB+DHwiJD+WjJUMK4Iy41Y8o327F + Zce+U0hKDhXC8LG2o9MDPfPpQSdWM98MuYYxwJuZI4RAxu+/LE2/3s4PdMLhl9QEiIRw18n9664l + puQkjuPkZFwvuegoKvy+iQAWDYIGu4uBX1hUT0rUER+XfMJqhFvlyHcCyZfWtKR/URGjZlSpBJH4 + ru0hdD03NBOSCFV0TLQRRizhqTxs75yolBnfcrf6LhDN0L5GhnsS1eUCripljYz9Wvhm/pgNxX1H + xwVKunMyrZMwcfD8OgSll83i81xG6xtzJ4WXNKckenZ7fMC7rjMqVEsA917ue9MWyiDN+UUk/wZ/ + LppOtFelORbfJny0OYvijTdXzNKgyVBT/LfACvvJRbhAYrJaW8Cxvl0m1/dRmJvDmQue0yr0vtrY + UIJN699kUnAg6v60uPldIZaQvMPHGTHohaMuwjZ6oQNzWXl+cv2JsQ+MDFFseBnJ5YetOpkIdW1n + On1lKWagO50AtY8dqATvYSBINoWOA2+s/Ry2ZzLgXY7YmV9a5PrXeSG3uuglkCbuDSVpORohlg== + + ADDED client/pkgIndex.tcl Index: client/pkgIndex.tcl ================================================================== --- client/pkgIndex.tcl +++ client/pkgIndex.tcl @@ -0,0 +1,21 @@ +############################################################################### +# +# pkgIndex.tcl -- +# +# Extensible Adaptable Generalized Logic Engine (Eagle) +# Package Index File +# +# 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: $ +# +############################################################################### + +if {![package vsatisfies [package provide Tcl] 8.4]} {return} +if {[string length [package provide Eagle]] > 0} then {return} + +package ifneeded Eagle.Package.Repository 1.0 \ + [list source [file join $dir pkgr.eagle]] ADDED client/pkgIndex.tcl.harpy Index: client/pkgIndex.tcl.harpy ================================================================== --- client/pkgIndex.tcl.harpy +++ client/pkgIndex.tcl.harpy @@ -0,0 +1,50 @@ + + + + None + Mistachkin Systems + 6dbcb424-0213-43a5-af65-59a3015b500c + SHA512 + Script + 2016-08-15T21:36:39.0690938Z + -1.00:00:00 + 0x2c322765603b5278 + + Bxt8syFTFTeddS7O+ilRnuIs7TPkar73FZWTgeLrrIe4MQ7EbVdnWUzpaL7NTajo8/QWSoyl4cUL + fmoeMXs52eqn7Kc4KOmoUVAhdJ5+5seO57/fXCTpyGzdm6B3GZVRmcKfTVYsKmHPITMNYVctQtd9 + nkQuIvRQHecMv+yI4msCvqQSIShd/9gN8AILk0WuUNdTV4QZpFLivC5sRpRbLuhl6XzF8ODi7s0O + bJ/Wt4dlTeCdge+KqBJfjM2+kRefAX+6nYlS4hztsLZtoHVK7ayRtwqUxhZ82eMIeB8MN3EEjOiQ + tR5U4DBRu/YpCMTb76ridnPKayjwVScz6icEHV0GPIOTrT0fUnK2Q4LGDW0JfCNs6YHrVNOGVRks + cNVAm2OQxLNvr4LCuMTylhh2VgaifzbMJK2rMmTzlApVoGS12y6wllo6UW4WWy18vKA72q7VZYL2 + OqyD5P60pojLztvw5gnlzTi1xkPoqVakR/WwDR3ppsc/CQNNfx4Qsjm9rr0MonZVbmJsp5U80/92 + mS0S9lvIULAmpSiJipaeoo2AZ6ByWihqya15TUBXX9/zvPW7sJKUZ/juOa0Sa4g1rH0+LlSRaLkT + UdyKiKZg7j9QcvfkJW/JBsKSGn/7+qKcMN4HiqNzphblFtO3BbYc4RvMnnQkjgK3o3yO2y8dFGHi + IObLQuq9535h2psnRjtPb/erVwNDs5zeQA344QrKXLblaj256NTKDopZtGd6ke0IX/SZWbeO8TY1 + teImYZ/aDiAej69pYETpqjjq3fiZCEltBLt+tIM6lDhXx8HA3zN3PQ4pXb7arOxKXt0Oz8h6Viz/ + 64gy0d2kP8gC0KBhF0o5unNSHiamGYV4g+BsTBHROZ1e/cRzcPzWSvzzrRUORi5lf1LpsmAVxzIV + 3KyvJZv13XXmrORh/KGAU1paWihZT0u4mGi0lBIpfkL3EF40tAoBVr0AoQKam0ovphsS4ZSpWZ55 + TUY2+M59lJ1mOEt/FAJYvUVppXQC5bnhCH+dWf6+oUfdqPIGML526h3sLNvczaoKVvLKFvDIFBBh + F1TGNn2ZywIHOTPoih9RdATo4r6+CUny+ms8n+PZEE8VoP6IN/gl3sSHRhQyzrnkZLARYV2OkYU+ + 21Ia4X4n9koY9fOg0UMGNtBGWwIut6xA9xkoeyXlIYPxmTU/HCAWdx+Y3x+PvYdjmbeR/W8kKRxy + s62QFkSUscwpimAoBQxCc57h++OxcVDQhkcvanlkG41Dg13nAjkSFpt/5gCA3UUOhxGyC8lTIV1Y + d9YmPTByWFgSBHJrPGhF2/tZFcpzKbAvnJlNW2w50SX9MQUdNjL78uMn1mk2NFFjIMpJWvGFRw== + + Index: client/pkgr.eagle ================================================================== --- client/pkgr.eagle +++ client/pkgr.eagle @@ -124,11 +124,13 @@ } if {[isEagle]} then { set data [uri download -inline $uri] } else { - set data [getFileViaHttp $uri 10 stdout true] + variable quiet + + set data [getFileViaHttp $uri 10 stdout $quiet] } set data [string map [list <\; < >\; > "\; \" &\; &] $data] set data [string map [list \r\n \n \r \n] $data] set data [string map [list \n \r\n] $data] @@ -452,10 +454,40 @@ [namespace current] :: tclMustBeReady]]] return [eagle $script(outer)] } } + + proc setupPackageUnknownHandler {} { + variable autoHook + variable autoLoadTcl + variable autoRequireGaruda + + if {$autoRequireGaruda && ![isEagle]} then { + # + # TODO: Assume this package is trusted? How can we verify it + # at this point? + # + package require Garuda + } + + if {$autoLoadTcl && [isEagle]} then { + # + # NOTE: Load a native Tcl library. It must be signed with a valid + # Authenticode signature. + # + tcl load -findflags +TrustedOnly -loadflags +SetDllDirectory + } + + if {$autoHook} then { + # + # NOTE: Install our [package unknown] handler and save the original + # one for our use as well. + # + hookPackageUnknownHandler + } + } proc hookPackageUnknownHandler {} { set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown] if {[info exists $varName]} then { @@ -562,10 +594,52 @@ # NOTE: Both [package unknown] handlers failed in some way, return the # error messages (i.e. both of them). # error [array get error] } + + proc setupPackageUnknownVars {} { + # + # NOTE: Prevent progress messages from being displayed while downloading + # from the repository, etc? By default, this is enabled. + # + variable quiet; # DEFAULT: true + + if {![info exists quiet]} then { + set quiet true + } + + # + # NOTE: Automatically install our [package unknown] handler when this + # package is loaded? + # + variable autoHook; # DEFAULT: true + + if {![info exists autoHook]} then { + set autoHook true + } + + # + # NOTE: Automatically [tcl load] when this package is loaded from the + # Eagle language? + # + variable autoLoadTcl; # DEFAULT: true + + if {![info exists autoLoadTcl]} then { + set autoLoadTcl true + } + + # + # NOTE: Automatically [package require Garuda] when this package is + # loaded from the Tcl language? + # + variable autoRequireGaruda; # DEFAULT: true + + if {![info exists autoRequireGaruda]} then { + set autoRequireGaruda true + } + } proc main { package version } { # # NOTE: Issue the lookup request to the remote package repository. # @@ -791,12 +865,23 @@ ########################################################################### ############################## END Tcl ONLY ############################### ########################################################################### } + # + # NOTE: Setup the variables, within this namespace, used by this script. + # + setupPackageUnknownVars + + # + # NOTE: Setup for our [package unknown] handler, which may involve a few + # different operations. + # + setupPackageUnknownHandler + # # NOTE: Provide the package to the interpreter. # package provide Eagle.Package.Repository \ [expr {[isEagle] ? [info engine PatchLevel] : "1.0"}] } Index: client/pkgr.eagle.harpy ================================================================== --- client/pkgr.eagle.harpy +++ client/pkgr.eagle.harpy @@ -19,32 +19,32 @@ None Mistachkin Systems - dfa81a18-2ec6-4e30-a8ea-5323c39d1b3d + c986d65c-b0fc-464c-a3a4-4a1990c1f135 SHA512 Script - 2016-08-15T21:03:17.1188984Z + 2016-08-15T21:58:22.7790547Z -1.00:00:00 0x2c322765603b5278 - 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