Check-in [54f7833d58]
Not logged in
Overview
Comment:Add comments and robustify error logging.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 54f7833d58e394d1b72c390a4f8452d40a62efac
User & Date: mistachkin on 2016-08-15 18:45:36
Other Links: manifest | tags
Context
2016-08-15
19:46
The ampersand character needs to be unescaped in the returned data from the package server. check-in: 306c8151d8 user: mistachkin tags: trunk
18:45
Add comments and robustify error logging. check-in: 54f7833d58 user: mistachkin tags: trunk
18:30
Add support for hooking the 'package unknown' handler in both Tcl and Eagle. check-in: 3bc512e10f user: mistachkin tags: trunk
Changes

Modified client/pkgr.eagle from [051495fc84] to [7dbde3e417].

454
455
456
457
458
459
460





461
462




463
464





465
466
467
468
469





470
471
472
473
474
475
476
477
478
479
480
481




482
483




484
485
486

487
488
489




490
491
492
493
494
495
496
      error "package unknown handler is not hooked"
    }

    package unknown [set $varName]
    unset $varName
  }






  proc packageUnknownHandler { package {version ""} } {
    if {[catch {main $package $version} error(1)] == 0} then {




      return
    } else {





      tclLog [appendArgs \
          "pkgr: new handler failed for \"" $package " " $version \
          "\", error: " $error(1)]
    }






    set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown]

    if {[info exists $varName]} then {
      set oldHandler [set $varName]
    } else {
      set oldHandler ""
    }

    if {[string length $oldHandler] > 0} then {
      lappend oldHandler $package $version

      if {[catch {uplevel #0 $oldHandler} error(2)] == 0} then {




        return
      } else {




        tclLog [appendArgs \
            "pkgr: old handler failed for \"" $package " " $version \
            "\", error: " $error(2)]

      }
    }





    error [array get error]
  }

  proc main { package version } {
    #
    # NOTE: Issue the lookup request to the remote package repository.
    #







>
>
>
>
>


>
>
>
>


>
>
>
>
>
|
|
|
|
|
>
>
>
>
>












>
>
>
>


>
>
>
>
|
|
|
>



>
>
>
>







454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
      error "package unknown handler is not hooked"
    }

    package unknown [set $varName]
    unset $varName
  }

  #
  # NOTE: This version argument to this procedure must be optional, because
  #       Eagle does not add a version argument when one is not supplied to
  #       the [package require] sub-command itself.
  #
  proc packageUnknownHandler { package {version ""} } {
    if {[catch {main $package $version} error(1)] == 0} then {
      #
      # NOTE: Success?  Just return and let Tcl (or Eagle) handle the
      #       rest.
      #
      return
    } else {
      #
      # NOTE: Failure?  Attempt to log the error message and then maybe
      #       try the original [package unknown] handler.
      #
      catch {
        tclLog [appendArgs \
            "pkgr: new handler failed for \"" [appendArgs [string \
            trim $package " " $version]] "\", error: " $error(1)]
      }
    }

    #
    # NOTE: See if there is a saved [package unknown] handler.  If so, we
    #       will attempt to use it.
    #
    set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown]

    if {[info exists $varName]} then {
      set oldHandler [set $varName]
    } else {
      set oldHandler ""
    }

    if {[string length $oldHandler] > 0} then {
      lappend oldHandler $package $version

      if {[catch {uplevel #0 $oldHandler} error(2)] == 0} then {
        #
        # NOTE: Success?  Just return and let Tcl (or Eagle) handle the
        #       rest.
        #
        return
      } else {
        #
        # NOTE: Failure?  Attempt to log the error message.
        #
        catch {
          tclLog [appendArgs \
              "pkgr: old handler failed for \"" [appendArgs [string \
              trim $package " " $version]] "\", error: " $error(2)]
        }
      }
    }

    #
    # NOTE: Both [package unknown] handlers failed in some way, return the
    #       error messages (i.e. both of them).
    #
    error [array get error]
  }

  proc main { package version } {
    #
    # NOTE: Issue the lookup request to the remote package repository.
    #

Modified client/pkgr.eagle.harpy from [c88d48d019] to [f9b6a94173].

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>69cd6be1-1651-4b2b-b188-21b47f431860</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-08-15T18:30:19.8005391Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x2c322765603b5278</Key>
  <Signature>
    ktOYtmBud0BikliO/4tyBaQfrx6W2r0LOxYnv0ULeAdC62J/yMOWuyqZLYMBp/8Dwey8ybS6EJlu
    Jzh2Sjz+lsBJjBGU9YsK2kUf7W+/ONVXvV2tak3gQYLL3b1MHgr4NeVGRB79V3+CTQXeANGZ6AYz
    faLnZ3ldWZeM7f6KysFM8++aq9CeyjQ/UHHo3vwQnp3c2My80lEqN8qu/YN3sZdvo2zorLfiaAIR
    lAYNc332sqj/vp64IUwpfBoY9p51l2lC5KaGJyIddiVjx/Ppftx5yFEh5OBrqZAEju1V3Pa9u0/q
    u+Eer5R8EiiiJYCn4ehIqTqE7HvXqDhnEn7rbGyUj8vkGGKscb4lvHx1btWoz8IoZuAPM0AGMl9F
    gXBOTO8HPFAEj8fTp5wd0CN2QUTQmvnatqkqOJRWCMuzuOUji+4CLk1qcykHRewb5kdjJw+2mYa/
    W3YqUwxVJ3L+ZBZ6tTl46N0crQ6W+9/Zs+yadA0kGawnyu+8XBJ2oY8mXWQN20MBnrXtKb4HvZZG
    rp5CTfGcJB4jW4pBFO/f2VIA8WlK2CPyjROe8WOR2H3G1+GiSqRUPEmBJwhY44Wc+I83zgAb5CUy
    wZzod+t8O5kSjyJmbqGhvCEzvpQED7Q7Weq3GvBf8KEKNlFWkDjQcg61wSiYXtytSV1bnEUkh3W5
    WmvVgJT7nFe52YPK35FpsIBcrBAwNxpj6MrlOxrKp1WlABxNT2xYi2meq5byAPMNez9RheXQJuNj
    iAnl1uzAzNLV3SGVfkNMPwuVJcugOwZGfGKwByF21LM8rWkYuP/XiTvP6oCrUkN5pMC9YB38POEt
    VyICfRVqXudvWLm7hkvisqp+zEHk+C0ra2BKwAzEW8+U4NVDyuZkLijLnIyZReeSQav7583LZtLW
    Q368/2c6VOxhVSkvVweE6JifDiQVvJ4emnXgkJfjq0f10aCFROQfecbt4f/+Wz9ThNnrXoXPxGcD
    HT12YX/OZ3NPwYK3cYbQr7tWfH57I4ih28yHuy+zrvLtyMi6ltmkhRSIIuvj+DxPG/DjCGAFyfN0
    Ze0UvLM8sNlQ3SBZXSJok50rpg6mO9g203q6XRaxAlen724KgVCAPcLfPR9HZ8fLScaGWJ1pxe9B
    x+FhCcM6H3hOoLX3TpmNLDR4AyOuxdhsMWIWtN4UrDZ2krtAKf+7RLSqiWpBoPZbApNdpk+BJdvn
    rBffRlrAV+BY4sj9sc7VzIgua/9m/DTVFunZ4G4UD57zA2xDRwtXgE0y8379bZ82e7jptVzlb+t4
    F1zUWsAJvMWPLntNrOOipyZXrSD358cUbBHeSnUbakjhxOe35WeniluEEQQCKiT0o5hNuNBIaQ==
  </Signature>
</Certificate>







|


|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>3dd85612-5d05-4672-bc84-a6c6db8cedc1</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-08-15T18:45:09.9343281Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x2c322765603b5278</Key>
  <Signature>
    YN1fI3cYStP4rS+b04zlCBL/H3HxMGy2hSl1QrTAK1lIitQpvhDeFIlXgwswoMGuCHNcBQ+b7xUw
    1yt1ftxxbfgUoEjPMYuAHn1YMxnkn2HLez/0AfO5CT1jG+nK0/X/Yafc4p+VvDqkbEGzPfx3NTdp
    Xk7DSxIPBwtDHsZaBkDWNeoLur3MWFNxK7jIBfh4OEMb01lOTLnv1UQydhzhdqy0CiyeTB7PRzCj
    zPjdY/SFnjEgiahtyqFqxwfmMdAenLMODie2aP5/a+oPdxkykVjslR8xvsoT5MrOJLONBlAV6xPR
    dLJ32yIRa/6FZ4jAptXWncVVlDsTmJKcefJe3Dlakr8f/nIwfWTMH+rKxpXKdpBw7s8T46rF3ka5
    2MR+wSaZhQssE14jUOe4yHmG3AQABGcs/sEGLcsummFNaKe9HF2OYhLu+w5Um+skibCOW0iADC5K
    vS8p2Z+skvdosHWjefSKWFme0ZQH7KwlJXYAPUaTWpMwPKvxSEf5Ek9Nu60ua9KvqGzqc6j2Kcw6
    fL2C7lbMfx5e8d8kReOy7C6svmmVyv1/GLI4UYIcUjkuh5nQp5mIUZrAbImdfWw3D135pl/7iuN5
    RK8FCr/cfMGJkeTBtutMWogjhx6qjHqb5Lp6nJnzlVlYm4qBBNVn2sFFMuWiuVnldl/+eD/ltDDX
    5ihRMwW5wlxrQj4FFmF2NKw5uvTRCxbMvGmeE6Jvutao0OsRtWe6A3BZnvnfKsNy2MtXtgvsdtrz
    3ttm0Uq2a8C1ie4hf4a2zqetIO3kD9r2QQrhYauL1H4FRY7qQZMpYc2taBb1AnS2MiaM6bOiI4mO
    fd6jyeUED11WK0C/P+Y1JT0kSW/tYTgfuA7otv/ZMsTZExR8ZSB7SfbLtycsm0UsPZ6Coz9qo7Vm
    uY0QJRXVyy6D3vfIkutlCstPm5yBbSy150+t8/8r7226AOimhQunKG/9f3CzVIMPxuvWKQ4Fuqop
    7drFlTWCIEh6vvuMEPMtFwl3EB2SnRkSJ9Uv73641V/6QaUOG2CH7hpW11v6vouGKa60me0ZYiQ9
    BIxKqPL0HjeBfukj2dvek+49uwKYnQHKgmQegCBuQlvoc13qzXrW0/I7MdAxrk/nG6HkeAiEybiV
    coHKntQ9t/jcF+ReyLJ5M/VBtsFxsHvLGFTXg+8DdnznUzqSkAry/fcR1jKd6aG63d0mWOvkNjaf
    IpRkAxKhi/0EJYzjeR7i85RGcMuue9rncMZce6k9ltS8rYCGZrXS5acK3gspH/tB9sGIxxE2pAYj
    oGGhwcC6A0vNQf055hglcsujmJIsSCfFKC6r7nlSQY5XG/84/Q+1BNajFFFEemgOBPHmI1lHlg==
  </Signature>
</Certificate>