summaryrefslogtreecommitdiffstats
path: root/virtual-programs/programs.folk
diff options
context:
space:
mode:
authorAndrés Cuervo <andrescuervor@gmail.com>2023-11-21 21:42:02 +0000
committerAndrés Cuervo <andrescuervor@gmail.com>2023-11-21 21:42:02 +0000
commit62eb8fab55efa95a632fcdb34e407cae1450fb57 (patch)
tree9cec04e58338f37b8f0cd8380f6bdf8ca1c00304 /virtual-programs/programs.folk
parentAdd dummy claims to track down stmt share bug (diff)
parentprint: Hack to forward Hex House print requests to folk0 (diff)
downloadfolk-62eb8fab55efa95a632fcdb34e407cae1450fb57.tar.gz
folk-62eb8fab55efa95a632fcdb34e407cae1450fb57.zip
Merge branch 'main' into ac/editor
Diffstat (limited to 'virtual-programs/programs.folk')
-rw-r--r--virtual-programs/programs.folk32
1 files changed, 20 insertions, 12 deletions
diff --git a/virtual-programs/programs.folk b/virtual-programs/programs.folk
index f42e1360..7c98632b 100644
--- a/virtual-programs/programs.folk
+++ b/virtual-programs/programs.folk
@@ -5,18 +5,26 @@ When (non-capturing) /type/ /obj/ has a program {
On unmatch { puts "Removed $type $obj" }
try {
- set tempPath "$::env(HOME)/folk-printed-programs/$obj.folk.temp"
+ if {[file exists "$::env(HOME)/folk-printed-programs/$obj.folk.temp"]} {
+ set fd [open "$::env(HOME)/folk-printed-programs/$obj.folk.temp" r]
+ } else {
+ if {![file exists "$::env(HOME)/folk-printed-programs/$obj.folk"] &&
+ ($::thisNode eq "folk-beads" || $::thisNode eq "folk-convivial")} {
+ # 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
- if {[file exists $tempPath]} {
- set path [open "$::env(HOME)/folk-printed-programs/$obj.folk.temp" r]
- } else {
- set path [open "$::env(HOME)/folk-printed-programs/$obj.folk" r]
+ Claim $obj has program code $code
+ } on error error {
+ puts stderr "No code for $type $obj"
}
- set code [read $path]
- close $path
-
- Claim $obj has program code $code
- } on error error {
- puts stderr "No code for $type $obj"
- }
}