mirror of
https://github.com/urbit/shrub.git
synced 2024-12-29 15:14:17 +03:00
kiln: get updates into %home, remove %base
We need to get updates directly into %home in case the marks depend on changes to hoon.hoon. %base has no reason to exist. Our ota strategy is now to merge from parent/kids to home, then parent/kids to kids.
This commit is contained in:
parent
13f6b84b76
commit
4aff4d74e2
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:ae3add505f1c37c3d10f2781bca3c9fc5032c11c9b9b8a6218d4301e462d4ccc
|
oid sha256:4bd63360c1b2fab69a35f71d360db6b9c71a796965d1826f919cf271e990bad2
|
||||||
size 16089760
|
size 15816973
|
||||||
|
@ -387,7 +387,7 @@
|
|||||||
%g %gall
|
%g %gall
|
||||||
==
|
==
|
||||||
=/ pax
|
=/ pax
|
||||||
/(scot %p our.hid)/home/(scot %da now.hid)/sys/vane/[vane]
|
/(scot %p our.hid)/work/(scot %da now.hid)/sys/vane/[vane]
|
||||||
=/ txt .^(@ %cx (weld pax /hoon))
|
=/ txt .^(@ %cx (weld pax /hoon))
|
||||||
[/vane/[vane] [%veer v pax txt]]
|
[/vane/[vane] [%veer v pax txt]]
|
||||||
=> .(this ^+(this this))
|
=> .(this ^+(this this))
|
||||||
@ -401,7 +401,7 @@
|
|||||||
:_ ~
|
:_ ~
|
||||||
%- unix-event
|
%- unix-event
|
||||||
%- %*(. file-ovum:pill-lib directories slim-dirs)
|
%- %*(. file-ovum:pill-lib directories slim-dirs)
|
||||||
/(scot %p our.hid)/home/(scot %da now.hid)
|
/(scot %p our.hid)/work/(scot %da now.hid)
|
||||||
=^ ms all-state (poke-pill pil)
|
=^ ms all-state (poke-pill pil)
|
||||||
(emit-cards ms)
|
(emit-cards ms)
|
||||||
::
|
::
|
||||||
|
14
pkg/arvo/gen/hood/ota.hoon
Normal file
14
pkg/arvo/gen/hood/ota.hoon
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
:: Kiln: Continuously merge local desk from (optionally-)foreign one
|
||||||
|
::
|
||||||
|
:::: /hoon/ota/hood/gen
|
||||||
|
::
|
||||||
|
/? 310
|
||||||
|
::
|
||||||
|
::::
|
||||||
|
::
|
||||||
|
:- %say
|
||||||
|
|= $: [now=@da eny=@uvJ bec=beak]
|
||||||
|
[arg=?(~ [her=@p sud=@tas ~]) ~]
|
||||||
|
==
|
||||||
|
:- %kiln-ota
|
||||||
|
?~(arg ~ `[her sud]:arg)
|
@ -1,3 +1,3 @@
|
|||||||
:- %say
|
:- %say
|
||||||
|= *
|
|= [^ ~ ~]
|
||||||
[%spider-kill ~]
|
[%spider-kill ~]
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
:- %noun
|
:- %noun
|
||||||
=<
|
=<
|
||||||
:~
|
:~
|
||||||
[%base-hash .^(@uv %cz (pathify ~.base ~))]
|
[%kids-hash .^(@uv %cz (pathify ~.kids ~))]
|
||||||
[%home-hash .^(@uv %cz (pathify ~.home ~))]
|
[%home-hash .^(@uv %cz (pathify ~.home ~))]
|
||||||
::
|
::
|
||||||
(info %our our)
|
(info %our our)
|
||||||
|
@ -11,14 +11,10 @@
|
|||||||
|% :: ::
|
|% :: ::
|
||||||
++ part {$kiln $0 pith} :: kiln state
|
++ part {$kiln $0 pith} :: kiln state
|
||||||
++ pith :: ::
|
++ pith :: ::
|
||||||
$: rem/(map desk per-desk) ::
|
$: rem=(map desk per-desk) ::
|
||||||
syn/(map kiln-sync let/@ud) ::
|
syn=(map kiln-sync let/@ud) ::
|
||||||
autoload-on/? ::
|
ota=(unit [=ship =desk =aeon]) ::
|
||||||
cur-hoon/@uvI ::
|
commit-timer=[way=wire nex=@da tim=@dr mon=term]
|
||||||
cur-arvo/@uvI ::
|
|
||||||
cur-zuse/@uvI ::
|
|
||||||
cur-vanes/(map @tas @uvI) ::
|
|
||||||
commit-timer/{way/wire nex/@da tim/@dr mon=term}
|
|
||||||
== ::
|
== ::
|
||||||
++ per-desk :: per-desk state
|
++ per-desk :: per-desk state
|
||||||
$: auto/? :: escalate on failure
|
$: auto/? :: escalate on failure
|
||||||
@ -127,6 +123,168 @@
|
|||||||
abet:(spam (render "already tracking" [sud her syd]:hos) ~)
|
abet:(spam (render "already tracking" [sud her syd]:hos) ~)
|
||||||
abet:abet:start-track:(auto hos)
|
abet:abet:start-track:(auto hos)
|
||||||
::
|
::
|
||||||
|
++ update
|
||||||
|
|%
|
||||||
|
++ make-wire
|
||||||
|
|= =path
|
||||||
|
?> ?=(^ ota)
|
||||||
|
%- welp
|
||||||
|
:_ path
|
||||||
|
/kiln/ota/(scot %p ship.u.ota)/[desk.u.ota]/(scot %ud aeon.u.ota)
|
||||||
|
::
|
||||||
|
++ check-ota
|
||||||
|
|= =wire
|
||||||
|
?~ ota
|
||||||
|
|
|
||||||
|
~! ota=ota
|
||||||
|
?& ?=([@ @ @ *] wire)
|
||||||
|
=(i.wire (scot %p ship.u.ota))
|
||||||
|
=(i.t.wire desk.u.ota)
|
||||||
|
=(i.t.t.wire (scot %ud aeon.u.ota))
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ render
|
||||||
|
|= [mez=tape error=(unit (pair term tang))]
|
||||||
|
%+ spam
|
||||||
|
?~ ota
|
||||||
|
leaf+mez
|
||||||
|
:^ %palm [" " ~ ~ ~] leaf+(weld "kiln: " mez)
|
||||||
|
~[leaf+"from {<desk.u.ota>}" leaf+"on {<ship.u.ota>}"]
|
||||||
|
?~ error
|
||||||
|
~
|
||||||
|
[>p.u.error< q.u.error]
|
||||||
|
::
|
||||||
|
++ render-ket
|
||||||
|
|= [mez=tape error=(unit (pair term tang))]
|
||||||
|
?> ?=(^ ota)
|
||||||
|
=< ?>(?=(^ ota) .)
|
||||||
|
%+ spam
|
||||||
|
:^ %palm [" " ~ ~ ~] leaf+(weld "kiln: " mez)
|
||||||
|
~[leaf+"from {<desk.u.ota>}" leaf+"on {<ship.u.ota>}"]
|
||||||
|
?~ error
|
||||||
|
~
|
||||||
|
[>p.u.error< q.u.error]
|
||||||
|
::
|
||||||
|
++ poke
|
||||||
|
|= arg=(unit [=ship =desk])
|
||||||
|
abet:(poke-internal arg)
|
||||||
|
::
|
||||||
|
++ poke-internal
|
||||||
|
|= arg=(unit [=ship =desk])
|
||||||
|
^+ ..abet
|
||||||
|
=? ..abet =(arg (bind ota |=([=ship =desk =aeon] [ship desk])))
|
||||||
|
(render "restarting OTA sync" ~)
|
||||||
|
=? ..abet ?=(^ ota)
|
||||||
|
=. ..abet (render-ket "cancelling OTA sync" ~)
|
||||||
|
..abet(ota ~)
|
||||||
|
?~ arg
|
||||||
|
..abet
|
||||||
|
=. ota `[ship.u.arg desk.u.arg *aeon]
|
||||||
|
=. ..abet (render "starting OTA sync" ~)
|
||||||
|
%: emit
|
||||||
|
%pass (make-wire /find) %arvo %c
|
||||||
|
%warp ship.u.arg desk.u.arg `[%sing %y ud+1 /]
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ take
|
||||||
|
|= [=wire =sign-arvo]
|
||||||
|
^+ ..abet
|
||||||
|
?> ?=(^ ota)
|
||||||
|
?. (check-ota wire)
|
||||||
|
..abet
|
||||||
|
?. ?=([@ @ @ @ *] wire)
|
||||||
|
..abet
|
||||||
|
?+ i.t.t.t.wire ~&([%strange-ota-take t.t.t.wire] ..abet)
|
||||||
|
%find (take-find sign-arvo)
|
||||||
|
%sync (take-sync sign-arvo)
|
||||||
|
%merge-home (take-merge-home sign-arvo)
|
||||||
|
%merge-kids (take-merge-kids sign-arvo)
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ take-find
|
||||||
|
|= =sign-arvo
|
||||||
|
?> ?=(%writ +<.sign-arvo)
|
||||||
|
?> ?=(^ ota)
|
||||||
|
=. ..abet (render-ket "activated OTA" ~)
|
||||||
|
%: emit
|
||||||
|
%pass (make-wire /sync) %arvo %c
|
||||||
|
%warp ship.u.ota desk.u.ota `[%sing %w da+now /]
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ take-sync
|
||||||
|
|= =sign-arvo
|
||||||
|
^+ ..abet
|
||||||
|
?> ?=(%writ +<.sign-arvo)
|
||||||
|
?> ?=(^ ota)
|
||||||
|
?~ p.sign-arvo
|
||||||
|
=. ..abet (render-ket "OTA cancelled, retrying" ~)
|
||||||
|
(poke-internal `[ship desk]:u.ota)
|
||||||
|
=? aeon.u.ota ?=($w p.p.u.p.sign-arvo)
|
||||||
|
ud:;;(cass:clay q.q.r.u.p.sign-arvo)
|
||||||
|
=/ =germ
|
||||||
|
=+ .^(=cass:clay %cw /(scot %p our)/home/(scot %da now))
|
||||||
|
?: =(0 ud.cass)
|
||||||
|
%init
|
||||||
|
?:((gth 2 ud.cass) %that %mate)
|
||||||
|
=. ..abet (render-ket "beginning OTA to %home" ~)
|
||||||
|
%: emit
|
||||||
|
%pass (make-wire /merge-home) %arvo %c
|
||||||
|
%merg %home ship.u.ota desk.u.ota ud+aeon.u.ota germ
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ take-merge-home
|
||||||
|
|= =sign-arvo
|
||||||
|
?> ?=(%mere +<.sign-arvo)
|
||||||
|
?> ?=(^ ota)
|
||||||
|
?: ?=([%| %ali-unavailable *] p.sign-arvo)
|
||||||
|
=. ..abet
|
||||||
|
=/ =tape "OTA to %home failed, maybe because sunk; restarting"
|
||||||
|
(render-ket tape `p.p.sign-arvo)
|
||||||
|
(poke-internal `[ship desk]:u.ota)
|
||||||
|
::
|
||||||
|
?: ?=(%| -.p.sign-arvo)
|
||||||
|
=. ..abet
|
||||||
|
=/ =tape "OTA to %home failed, waiting for next revision"
|
||||||
|
(render-ket tape `p.p.sign-arvo)
|
||||||
|
=. aeon.u.ota +(aeon.u.ota)
|
||||||
|
%: emit
|
||||||
|
%pass (make-wire /sync) %arvo %c
|
||||||
|
%warp ship.u.ota desk.u.ota `[%sing %y ud+aeon.u.ota /]
|
||||||
|
==
|
||||||
|
=. ..abet (render-ket "OTA to %home succeeded" ~)
|
||||||
|
=. ..abet (render-ket "beginning OTA to %kids" ~)
|
||||||
|
=/ =germ
|
||||||
|
=+ .^(=cass:clay %cw /(scot %p our)/kids/(scot %da now))
|
||||||
|
?: =(0 ud.cass)
|
||||||
|
%init
|
||||||
|
?:((gth 2 ud.cass) %that %mate)
|
||||||
|
%: emit
|
||||||
|
%pass (make-wire /merge-kids) %arvo %c
|
||||||
|
%merg %kids ship.u.ota desk.u.ota ud+aeon.u.ota germ
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ take-merge-kids
|
||||||
|
|= =sign-arvo
|
||||||
|
?> ?=(%mere +<.sign-arvo)
|
||||||
|
?> ?=(^ ota)
|
||||||
|
?: ?=([%| %ali-unavailable *] p.sign-arvo)
|
||||||
|
=. ..abet
|
||||||
|
=/ =tape "OTA to %kids failed, maybe because sunk; restarting"
|
||||||
|
(render-ket tape `p.p.sign-arvo)
|
||||||
|
(poke-internal `[ship desk]:u.ota)
|
||||||
|
::
|
||||||
|
=. ..abet
|
||||||
|
?- -.p.sign-arvo
|
||||||
|
%& (render-ket "OTA to %kids succeeded" ~)
|
||||||
|
%| (render-ket "OTA to %kids failed" `p.p.sign-arvo)
|
||||||
|
==
|
||||||
|
=. aeon.u.ota +(aeon.u.ota)
|
||||||
|
%: emit
|
||||||
|
%pass (make-wire /sync) %arvo %c
|
||||||
|
%warp ship.u.ota desk.u.ota `[%sing %y ud+aeon.u.ota /]
|
||||||
|
==
|
||||||
|
--
|
||||||
|
::
|
||||||
++ poke-sync ::
|
++ poke-sync ::
|
||||||
|= hos/kiln-sync
|
|= hos/kiln-sync
|
||||||
?: (~(has by syn) hos)
|
?: (~(has by syn) hos)
|
||||||
@ -136,6 +294,7 @@
|
|||||||
++ poke-syncs :: print sync config
|
++ poke-syncs :: print sync config
|
||||||
|= ~
|
|= ~
|
||||||
=< abet %- spam
|
=< abet %- spam
|
||||||
|
:- [%leaf "OTAs from {<ota>}"]
|
||||||
?: =(0 ~(wyt by syn))
|
?: =(0 ~(wyt by syn))
|
||||||
[%leaf "no syncs configured"]~
|
[%leaf "no syncs configured"]~
|
||||||
%+ turn ~(tap in ~(key by syn))
|
%+ turn ~(tap in ~(key by syn))
|
||||||
@ -203,6 +362,7 @@
|
|||||||
%kiln-schedule =;(f (f !<(_+<.f vase)) poke-schedule)
|
%kiln-schedule =;(f (f !<(_+<.f vase)) poke-schedule)
|
||||||
%kiln-track =;(f (f !<(_+<.f vase)) poke-track)
|
%kiln-track =;(f (f !<(_+<.f vase)) poke-track)
|
||||||
%kiln-sync =;(f (f !<(_+<.f vase)) poke-sync)
|
%kiln-sync =;(f (f !<(_+<.f vase)) poke-sync)
|
||||||
|
%kiln-ota =;(f (f !<(_+<.f vase)) poke:update)
|
||||||
%kiln-syncs =;(f (f !<(_+<.f vase)) poke-syncs)
|
%kiln-syncs =;(f (f !<(_+<.f vase)) poke-syncs)
|
||||||
%kiln-goad-gall =;(f (f !<(_+<.f vase)) poke-goad-gall)
|
%kiln-goad-gall =;(f (f !<(_+<.f vase)) poke-goad-gall)
|
||||||
%kiln-unmount =;(f (f !<(_+<.f vase)) poke-unmount)
|
%kiln-unmount =;(f (f !<(_+<.f vase)) poke-unmount)
|
||||||
@ -241,6 +401,7 @@
|
|||||||
?>(?=(%writ +<.sign-arvo) +>.sign-arvo)
|
?>(?=(%writ +<.sign-arvo) +>.sign-arvo)
|
||||||
[%autocommit *] %+ take-wake-autocommit t.wire
|
[%autocommit *] %+ take-wake-autocommit t.wire
|
||||||
?>(?=(%wake +<.sign-arvo) +>.sign-arvo)
|
?>(?=(%wake +<.sign-arvo) +>.sign-arvo)
|
||||||
|
[%ota *] abet:(take:update t.wire sign-arvo)
|
||||||
*
|
*
|
||||||
?+ +<.sign-arvo ~|([%kiln-bad-take-card +<.sign-arvo] !!)
|
?+ +<.sign-arvo ~|([%kiln-bad-take-card +<.sign-arvo] !!)
|
||||||
%done %+ done wire
|
%done %+ done wire
|
||||||
@ -388,7 +549,7 @@
|
|||||||
::
|
::
|
||||||
++ mere
|
++ mere
|
||||||
|= mes=(each (set path) (pair term tang))
|
|= mes=(each (set path) (pair term tang))
|
||||||
?: ?=([%| %bad-fetch-ali *] mes)
|
?: ?=([%| %ali-unavailable *] mes)
|
||||||
=. +>.$
|
=. +>.$
|
||||||
%^ spam
|
%^ spam
|
||||||
leaf+"merge cancelled, maybe because sunk; restarting"
|
leaf+"merge cancelled, maybe because sunk; restarting"
|
||||||
|
@ -228,8 +228,6 @@
|
|||||||
;< ~ bind:m (mount her desk)
|
;< ~ bind:m (mount her desk)
|
||||||
;< our=@p bind:m get-our
|
;< our=@p bind:m get-our
|
||||||
;< now=@da bind:m get-time
|
;< now=@da bind:m get-time
|
||||||
=/ host-pax
|
|
||||||
(weld /(scot %p our)/home/(scot %da now) pax)
|
|
||||||
=/ aqua-pax
|
=/ aqua-pax
|
||||||
;: weld
|
;: weld
|
||||||
/i/(scot %p her)/cx/(scot %p her)/[desk]/(scot %da now)
|
/i/(scot %p her)/cx/(scot %p her)/[desk]/(scot %da now)
|
||||||
@ -240,7 +238,7 @@
|
|||||||
%^ cat 3 '=> . '
|
%^ cat 3 '=> . '
|
||||||
%^ cat 3 extra
|
%^ cat 3 extra
|
||||||
(need (scry-aqua:util (unit @) our now aqua-pax))
|
(need (scry-aqua:util (unit @) our now aqua-pax))
|
||||||
;< ~ bind:m (send-events (insert-file:util her desk host-pax warped))
|
;< ~ bind:m (send-events (insert-files:util her desk [pax warped] ~))
|
||||||
(pure:m warped)
|
(pure:m warped)
|
||||||
::
|
::
|
||||||
:: Check /sur/aquarium/hoon on the given has the given contents.
|
:: Check /sur/aquarium/hoon on the given has the given contents.
|
||||||
|
@ -45,14 +45,16 @@
|
|||||||
::
|
::
|
||||||
:: Inject a file into a ship
|
:: Inject a file into a ship
|
||||||
::
|
::
|
||||||
++ insert-file
|
++ insert-files
|
||||||
|= [who=ship des=desk pax=path txt=@t]
|
|= [who=ship des=desk files=(list [=path txt=@t])]
|
||||||
^- (list aqua-event)
|
^- (list aqua-event)
|
||||||
?> ?=([@ @ @ *] pax)
|
=/ input
|
||||||
=/ file [/text/plain (as-octs:mimes:html txt)]
|
%+ turn files
|
||||||
|
|= [=path txt=@t]
|
||||||
|
[path ~ /text/plain (as-octs:mimes:html txt)]
|
||||||
%+ send-events-to who
|
%+ send-events-to who
|
||||||
:~
|
:~
|
||||||
[//sync/0v1n.2m9vh %into des | [t.t.t.pax `file]~]
|
[//sync/0v1n.2m9vh %into des | input]
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
:: Checks whether the given event is a dojo output blit containing the
|
:: Checks whether the given event is a dojo output blit containing the
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
:::::: :::::: Postface ::::::
|
:::::: :::::: Postface ::::::
|
||||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
!:
|
|
||||||
~> %slog.[0 leaf+"arvo: assembly"]
|
~> %slog.[0 leaf+"arvo: assembly"]
|
||||||
~< %slog.[0 leaf+"arvo: assembled"]
|
~< %slog.[0 leaf+"arvo: assembled"]
|
||||||
=< ::
|
=< ::
|
||||||
|
@ -3671,7 +3671,7 @@
|
|||||||
=/ bem/beam
|
=/ bem/beam
|
||||||
?^ bem
|
?^ bem
|
||||||
u.bem
|
u.bem
|
||||||
[[our %base %ud 1] ~]
|
[[our %home %ud 1] ~]
|
||||||
=/ dos (~(get by dos.rom.ruf) q.bem)
|
=/ dos (~(get by dos.rom.ruf) q.bem)
|
||||||
?~ dos
|
?~ dos
|
||||||
!! :: fire next in queue
|
!! :: fire next in queue
|
||||||
|
@ -260,7 +260,7 @@
|
|||||||
[[151 %noun] %j our %sein da+now /(scot %p who)]
|
[[151 %noun] %j our %sein da+now /(scot %p who)]
|
||||||
::
|
::
|
||||||
++ init :: initialize
|
++ init :: initialize
|
||||||
(pass /merg/home [%c %merg %home our %base da+now %init])
|
(pass /merg/home [%c %merg %kids our %home da+now %init])
|
||||||
::
|
::
|
||||||
++ mere :: continue init
|
++ mere :: continue init
|
||||||
^+ .
|
^+ .
|
||||||
@ -268,13 +268,11 @@
|
|||||||
=/ can (clan:title our)
|
=/ can (clan:title our)
|
||||||
=. tem ~
|
=. tem ~
|
||||||
=. +> (pass / %g %conf ram)
|
=. +> (pass / %g %conf ram)
|
||||||
=. +> (sync %home our %base)
|
|
||||||
=? +> ?=(?($earl $duke $king) can)
|
=? +> ?=(?($earl $duke $king) can)
|
||||||
(sync %base (sein our) %kids)
|
(ota (sein our) %kids)
|
||||||
=? +> ?=(?($duke $king $czar) can)
|
:: make kids desk publicly readable, so syncs work.
|
||||||
:: make kids desk publicly readable, so syncs work.
|
::
|
||||||
::
|
=. +> (show %kids)
|
||||||
(show %kids):(sync %kids our %base)
|
|
||||||
=. +> hood-set-boot-apps
|
=. +> hood-set-boot-apps
|
||||||
=. +> peer
|
=. +> peer
|
||||||
|- ^+ +>+
|
|- ^+ +>+
|
||||||
@ -284,7 +282,7 @@
|
|||||||
++ into :: preinitialize
|
++ into :: preinitialize
|
||||||
|= gyl/(list gill)
|
|= gyl/(list gill)
|
||||||
=. tem `(turn gyl |=(a/gill [%yow a]))
|
=. tem `(turn gyl |=(a/gill [%yow a]))
|
||||||
(pass / [%c %warp our %base `[%sing %y [%ud 1] /]])
|
(pass / [%c %warp our %home `[%sing %y [%ud 1] /]])
|
||||||
::
|
::
|
||||||
++ send :: send action
|
++ send :: send action
|
||||||
|= bet/dill-belt
|
|= bet/dill-belt
|
||||||
@ -303,9 +301,9 @@
|
|||||||
|= des/desk
|
|= des/desk
|
||||||
(pass /show [%c %perm des / r+`[%black ~]])
|
(pass /show [%c %perm des / r+`[%black ~]])
|
||||||
::
|
::
|
||||||
++ sync
|
++ ota
|
||||||
|= syn/{desk ship desk}
|
|= syn=[ship desk]
|
||||||
(deal /sync [%poke %hood-sync -:!>(syn) syn])
|
(deal /sync %poke %kiln-ota !>(`syn))
|
||||||
::
|
::
|
||||||
++ take :: receive
|
++ take :: receive
|
||||||
|= {tea/wire sih/sign}
|
|= {tea/wire sih/sign}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
!: :: %gall, agent execution
|
:: :: %gall, agent execution
|
||||||
!? 163
|
!? 163
|
||||||
!:
|
::
|
||||||
|
|
||||||
::::
|
::::
|
||||||
|= pit=vase
|
|= pit=vase
|
||||||
=, gall
|
=, gall
|
||||||
|
54
pkg/arvo/ted/ph/child-update.hoon
Normal file
54
pkg/arvo/ted/ph/child-update.hoon
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/- spider
|
||||||
|
/+ *ph-io
|
||||||
|
=, strand=strand:spider
|
||||||
|
^- thread:spider
|
||||||
|
|= vase
|
||||||
|
|^
|
||||||
|
=/ m (strand ,vase)
|
||||||
|
;< ~ bind:m start-simple
|
||||||
|
;< ~ bind:m (raw-ship ~bud ~)
|
||||||
|
;< ~ bind:m (raw-ship ~marbud ~)
|
||||||
|
;< [path @t] bind:m (modify ~bud %home)
|
||||||
|
;< [=path file=@t] bind:m (modify ~bud %kids)
|
||||||
|
;< ~ bind:m (check-touched ~marbud %kids path file)
|
||||||
|
;< ~ bind:m end-simple
|
||||||
|
(pure:m *vase)
|
||||||
|
::
|
||||||
|
++ modify
|
||||||
|
|= [her=@p =desk]
|
||||||
|
=/ m (strand ,[path @t])
|
||||||
|
^- form:m
|
||||||
|
;< ~ bind:m (mount her desk)
|
||||||
|
;< our=@p bind:m get-our
|
||||||
|
;< now=@da bind:m get-time
|
||||||
|
|^
|
||||||
|
=/ zuse-contents
|
||||||
|
%^ cat 3 '=/ new-val 57 '
|
||||||
|
(get-val /sys/zuse/hoon)
|
||||||
|
=/ mar-contents
|
||||||
|
%^ cat 3 (get-val /mar/js/hoon)
|
||||||
|
' ~& > new-val=new-val .'
|
||||||
|
=/ js-contents
|
||||||
|
%^ cat 3 (get-val /app/publish/js/index/js)
|
||||||
|
'extra'
|
||||||
|
=/ files
|
||||||
|
:~ [/sys/zuse/hoon zuse-contents]
|
||||||
|
[/mar/js/hoon mar-contents]
|
||||||
|
[/app/publish/js/index/js js-contents]
|
||||||
|
==
|
||||||
|
;< ~ bind:m (send-events (insert-files:util her desk files))
|
||||||
|
(pure:m /app/publish/js/index/js js-contents)
|
||||||
|
::
|
||||||
|
++ aqua-path
|
||||||
|
|= =path
|
||||||
|
;: weld
|
||||||
|
/i/(scot %p her)/cx/(scot %p her)/[desk]/(scot %da now)
|
||||||
|
path
|
||||||
|
/noun
|
||||||
|
==
|
||||||
|
::
|
||||||
|
++ get-val
|
||||||
|
|= =path
|
||||||
|
(need (scry-aqua:util (unit @) our now (aqua-path path)))
|
||||||
|
--
|
||||||
|
--
|
Loading…
Reference in New Issue
Block a user