mirror of
https://github.com/urbit/shrub.git
synced 2024-12-29 23:23:52 +03:00
b830cf1486
In many cases running without %force is insufficient because ford crashes while unsubscribing. This should fix some cases of OTAs being received but not processed.
67 lines
1.3 KiB
Plaintext
67 lines
1.3 KiB
Plaintext
/+ default-agent, verb
|
|
%+ verb |
|
|
^- agent:gall
|
|
=>
|
|
|%
|
|
++ warp
|
|
|= =bowl:gall
|
|
[%pass /clay %arvo %c %warp our.bowl %home ~ %next %z da+now.bowl /sys]
|
|
::
|
|
++ wait
|
|
|= =bowl:gall
|
|
[%pass /behn %arvo %b %wait +(now.bowl)]
|
|
::
|
|
++ goad
|
|
|= force=?
|
|
:~ [%pass /gall %arvo %g %goad force ~]
|
|
==
|
|
--
|
|
::
|
|
|_ =bowl:gall
|
|
+* this .
|
|
def ~(. (default-agent this %|) bowl)
|
|
++ on-init
|
|
:: subscribe to /sys and do initial goad
|
|
::
|
|
[[(warp bowl) (wait bowl) ~] this]
|
|
::
|
|
++ on-save on-save:def
|
|
++ on-load on-load:def
|
|
++ on-poke
|
|
|= [=mark =vase]
|
|
?: ?=([%noun * %go] +<)
|
|
[(goad |) this]
|
|
?: ?=([%noun * %force] +<)
|
|
[(goad &) this]
|
|
(on-poke:def mark vase)
|
|
::
|
|
++ on-watch on-watch:def
|
|
++ on-leave on-leave:def
|
|
++ on-peek on-peek:def
|
|
++ on-agent on-agent:def
|
|
++ on-arvo
|
|
|= [=wire =sign-arvo]
|
|
?+ wire (on-arvo:def wire sign-arvo)
|
|
[%clay ~]
|
|
:: on writ, wait
|
|
::
|
|
?> ?=(%writ +<.sign-arvo)
|
|
:_ this
|
|
:~ (warp bowl)
|
|
(wait bowl)
|
|
==
|
|
::
|
|
[%behn ~]
|
|
:: on wake, goad
|
|
::
|
|
?> ?=(%wake +<.sign-arvo)
|
|
?^ error.sign-arvo
|
|
:_ this :_ ~
|
|
[%pass /dill %arvo %d %flog %crud %goad-fail u.error.sign-arvo]
|
|
%- (slog leaf+"goad: recompiling all apps" ~)
|
|
[(goad &) this]
|
|
==
|
|
::
|
|
++ on-fail on-fail:def
|
|
--
|