Check-in [3bc512e10f]
Not logged in
Overview
Comment:Add support for hooking the 'package unknown' handler in both Tcl and Eagle.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 3bc512e10f0fb5b9494af7e6259d5cc37cbe5688
User & Date: mistachkin on 2016-08-15 18:30:35
Other Links: manifest | tags
Context
2016-08-15
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
05:06
Robustify the handling of malformed responses from the package repository server. Add comments. check-in: 2ea4b56805 user: mistachkin tags: trunk
Changes

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

431
432
433
434
435
436
437






















































438
439
440
441
442
443
444
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
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







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+








      eagle [list proc $newProcName(2) {} [info body [appendArgs \
          [namespace current] :: tclMustBeReady]]]

      return [eagle $script(outer)]
    }
  }

  proc hookPackageUnknownHandler {} {
    set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown]

    if {[info exists $varName]} then {
      error "package unknown handler already hooked"
    }

    set $varName [package unknown]
    package unknown [appendArgs [namespace current] ::packageUnknownHandler]
  }

  proc unhookPackageUnknownHandler {} {
    set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown]

    if {![info exists $varName]} then {
      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.
    #
    set data [getLookupData [getLookupApiKey] $package $version]

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

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
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>9f926fa1-99a4-41ab-bb33-50e8576a6d21</Id>
  <Id>69cd6be1-1651-4b2b-b188-21b47f431860</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-08-15T05:05:47.5290547Z</TimeStamp>
  <TimeStamp>2016-08-15T18:30:19.8005391Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x2c322765603b5278</Key>
  <Signature>
    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
  </Signature>
</Certificate>