blob: b853ee310a19b456a4b60c45379f02a1109a28a5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
When (non-capturing) /type/ /obj/ has a program {
puts "Added $type $obj"
On unmatch { puts "Removed $type $obj" }
try {
if {[file exists "$::env(HOME)/folk-printed-programs/$obj.folk.temp"]} {
set fd [open "$::env(HOME)/folk-printed-programs/$obj.folk.temp" r]
} else {
# HACK: localhost is folk-live for now. idk why.
if {![file exists "$::env(HOME)/folk-printed-programs/$obj.folk"] &&
($::thisNode in [list "folk-beads" "folk-convivial" "localhost" "gadget-red" "gadget-blue"])} {
# HACK: 'Page fault' to folk0, try getting page from
# there. Ideally we would have some general (Avahi?)
# way of finding the 'authoritative' node on the local
# network, or broadcasting out, and getting pages from
# there.
exec curl --output "$::env(HOME)/folk-printed-programs/$obj.folk" \
"http://folk0.local:4273/printed-programs/$obj.folk"
}
set fd [open "$::env(HOME)/folk-printed-programs/$obj.folk" r]
}
set code [read $fd]
close $fd
Claim $obj has program code $code
} on error error {
puts stderr "No code for $type $obj"
}
}
|