diff options
| author | Andrés Cuervo <andrescuervor@gmail.com> | 2023-11-21 21:42:02 +0000 |
|---|---|---|
| committer | Andrés Cuervo <andrescuervor@gmail.com> | 2023-11-21 21:42:02 +0000 |
| commit | 62eb8fab55efa95a632fcdb34e407cae1450fb57 (patch) | |
| tree | 9cec04e58338f37b8f0cd8380f6bdf8ca1c00304 /virtual-programs/programs.folk | |
| parent | Add dummy claims to track down stmt share bug (diff) | |
| parent | print: Hack to forward Hex House print requests to folk0 (diff) | |
| download | folk-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.folk | 32 |
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" - } } |
