mirror of
https://github.com/urbit/shrub.git
synced 2024-12-24 20:47:27 +03:00
grid: remove workarounds for multiple desks
This commit is contained in:
parent
6b59188642
commit
1b60ee96bb
@ -64,13 +64,7 @@
|
||||
=^ cards state
|
||||
?+ mark (on-poke:def:cc mark vase)
|
||||
%docket-uninstall dc-abet:dc-uninstall:(dc-abed !<(desk vase))
|
||||
::
|
||||
%init :: must delay poke until after commit
|
||||
=^ g-cards state :: TODO: break into own desk, remove special casing
|
||||
dc-abet:dc-install:(dc-abed %grid)
|
||||
=^ l-cards state
|
||||
dc-abet:dc-install:(dc-abed %landscape)
|
||||
[(weld g-cards l-cards) state]
|
||||
%init dc-abet:dc-install:(dc-abed %grid)
|
||||
::
|
||||
%noun
|
||||
=+ ;;([%kick =desk] q.vase)
|
||||
@ -253,8 +247,6 @@
|
||||
++ dc-install
|
||||
=. dc-core (dc-log "installing {<desk>}")
|
||||
=/ =path
|
||||
?: =(%grid desk) :: XX remove
|
||||
/(scot %p our.bowl)/landscape/(scot %da now.bowl)/grid/docket
|
||||
/(scot %p our.bowl)/[desk]/(scot %da now.bowl)/desk/docket
|
||||
=+ .^(exists=? %cu path)
|
||||
?. exists :: no docket
|
||||
|
@ -1,7 +1,5 @@
|
||||
:~ :- %apes
|
||||
:~ %docket
|
||||
==
|
||||
:- %fish
|
||||
:~ %chat-cli
|
||||
==
|
||||
:- %fish ~
|
||||
==
|
||||
|
18
pkg/grid/lib/kiln.hoon
Normal file
18
pkg/grid/lib/kiln.hoon
Normal file
@ -0,0 +1,18 @@
|
||||
/- *hood
|
||||
/* base-bill %bill /desk/bill
|
||||
=, clay
|
||||
=, space:userlib
|
||||
=, format
|
||||
=* dude dude:gall
|
||||
|%
|
||||
:: $diff: subscription update
|
||||
::
|
||||
+$ diff
|
||||
$% [%block =desk =arak =weft blockers=(set desk)]
|
||||
[%reset =desk =arak]
|
||||
[%merge =desk =arak]
|
||||
[%merge-sunk =desk =arak =tang]
|
||||
[%merge-fail =desk =arak =tang]
|
||||
==
|
||||
--
|
||||
|
13
pkg/grid/mar/docket-uninstall.hoon
Normal file
13
pkg/grid/mar/docket-uninstall.hoon
Normal file
@ -0,0 +1,13 @@
|
||||
|_ =desk
|
||||
++ grad %noun
|
||||
++ grow
|
||||
|%
|
||||
++ noun desk
|
||||
++ json s+desk
|
||||
--
|
||||
++ grab
|
||||
|%
|
||||
++ noun ^desk
|
||||
++ json so:dejs:format
|
||||
--
|
||||
--
|
13
pkg/grid/mar/docket-update.hoon
Normal file
13
pkg/grid/mar/docket-update.hoon
Normal file
@ -0,0 +1,13 @@
|
||||
/+ dock=docket
|
||||
|_ =update:dock
|
||||
++ grad %noun
|
||||
++ grow
|
||||
|%
|
||||
++ noun update
|
||||
++ json (update:enjs:dock update)
|
||||
--
|
||||
++ grab
|
||||
|%
|
||||
++ noun update:dock
|
||||
--
|
||||
--
|
134
pkg/grid/sur/hood.hoon
Normal file
134
pkg/grid/sur/hood.hoon
Normal file
@ -0,0 +1,134 @@
|
||||
/- *bill
|
||||
=, clay
|
||||
=* dude dude:gall
|
||||
|%
|
||||
:: $arak: foreign vat tracker
|
||||
::
|
||||
:: .next is a list of pending commits with future kelvins
|
||||
::
|
||||
+$ arak
|
||||
$: =ship
|
||||
=desk
|
||||
=aeon
|
||||
next=(list [=aeon =weft])
|
||||
=rein
|
||||
==
|
||||
:: $rein: diff from desk manifest
|
||||
::
|
||||
:: .add: agents not in manifest that should be running
|
||||
:: .sub: agents in manifest that should not be running
|
||||
::
|
||||
+$ rein
|
||||
$: add=(set dude)
|
||||
sub=(set dude)
|
||||
==
|
||||
::
|
||||
+$ vat [=desk hash=@uv =cass =arak]
|
||||
:: +report-vats: report on all desk installations
|
||||
::
|
||||
++ report-vats
|
||||
|= [our=@p now=@da]
|
||||
^- tang
|
||||
=+ .^ raz=(list vat)
|
||||
%gx /(scot %p our)/hood/(scot %da now)/kiln/vats/noun
|
||||
==
|
||||
(turn raz |=(v=vat (report-vat our now v)))
|
||||
:: +report-vat: report on a single desk installation
|
||||
::
|
||||
++ report-vat
|
||||
|= [our=ship now=@da vat]
|
||||
^- tank
|
||||
=+ .^(=weft %cx /(scot %p our)/[desk]/(scot %da now)/sys/kelvin)
|
||||
:+ %rose ["" "{<desk>}" "::"]
|
||||
^- tang
|
||||
=- ?: =(~ next.arak) -
|
||||
(snoc - leaf/"pending: {<next.arak>}")
|
||||
^- tang
|
||||
=/ meb (mergebase-hashes our desk now arak)
|
||||
:~ leaf/"/sys/kelvin: {<[lal num]:weft>}"
|
||||
leaf/"base hash: {?.(=(1 (lent meb)) <meb> <(head meb)>)}"
|
||||
leaf/"%cz hash: {<hash>}"
|
||||
leaf/"remote aeon: {<aeon.arak>}"
|
||||
leaf/"force on: {?:(=(~ add.rein.arak) "~" <add.rein.arak>)}"
|
||||
leaf/"force off: {?:(=(~ sub.rein.arak) "~" <sub.rein.arak>)}"
|
||||
==
|
||||
:: +ankh-to-kelvin: read /sys.kelvin from an $ankh
|
||||
::
|
||||
++ ankh-to-kelvin
|
||||
|= =ankh
|
||||
!< weft
|
||||
q:(need (~(get an:cloy ankh) /sys/kelvin))
|
||||
::
|
||||
++ read-kelvin-local
|
||||
|= [our=ship =desk =aeon]
|
||||
.^(weft cx+/(scot %p our)/[desk]/(scot %ud aeon)/sys/kelvin)
|
||||
::
|
||||
++ read-kelvin-foreign
|
||||
|= [=ship =desk =aeon]
|
||||
^- weft
|
||||
=/ her (scot %p ship)
|
||||
=/ syd (scot %tas desk)
|
||||
=/ yon (scot %ud aeon)
|
||||
::
|
||||
=/ dom .^(dome cv/~[her syd yon])
|
||||
=/ tak (scot %uv (~(got by hit.dom) let.dom))
|
||||
=/ yak .^(yaki cs/~[her syd yon %yaki tak])
|
||||
=/ lob (scot %uv (~(got by q.yak) /sys/kelvin))
|
||||
=/ bob .^(blob cs/~[her syd yon %blob lob])
|
||||
::
|
||||
;; weft
|
||||
?- -.bob
|
||||
%direct q.q.bob
|
||||
%delta q.r.bob
|
||||
==
|
||||
:: +read-bill: read contents of /desk/bill manifest
|
||||
::
|
||||
++ read-bill
|
||||
|= [our=ship =desk now=@da]
|
||||
.^(bill cx+/(scot %p our)/[desk]/(scot %da now)/desk/bill)
|
||||
:: +is-fish: should dill link .dude?
|
||||
::
|
||||
++ is-fish |=([=dude =bill] .?((find ~[dude] (read-fish bill))))
|
||||
:: +get-apps-diff: which agents should be started and stopped
|
||||
::
|
||||
++ get-apps-diff
|
||||
|= [our=ship =desk now=@da =rein]
|
||||
^- [liv=(list dude) ded=(list dude)]
|
||||
=/ =bill (read-bill our desk now)
|
||||
=/ wan (sy (get-apps-want bill rein))
|
||||
=/ hav (sy (get-apps-live our desk now))
|
||||
=/ liv ~(tap in (~(dif in wan) hav))
|
||||
=/ ded ~(tap in (~(dif in hav) wan))
|
||||
[liv ded]
|
||||
::
|
||||
++ get-apps-live
|
||||
|= [our=ship =desk now=@da]
|
||||
^- (list dude)
|
||||
%+ murn (get-apps-have our desk now)
|
||||
|=([=dude live=?] ?.(live ~ `dude))
|
||||
:: +get-apps-have: find which apps Gall is running on a desk
|
||||
::
|
||||
++ get-apps-have
|
||||
|= [our=ship =desk now=@da]
|
||||
^- (list [=dude live=?])
|
||||
%~ tap in
|
||||
.^((set [=dude live=?]) ge+/(scot %p our)/[desk]/(scot %da now))
|
||||
:: +get-apps-want: find which apps should be running on a desk
|
||||
::
|
||||
++ get-apps-want
|
||||
|= [=bill =rein]
|
||||
^- (list dude)
|
||||
=/ duz (read-apes bill)
|
||||
=. duz (skip duz ~(has in sub.rein))
|
||||
=. duz (weld duz ~(tap in add.rein))
|
||||
duz
|
||||
::
|
||||
++ mergebase-hashes
|
||||
|= [our=@p =desk now=@da =arak]
|
||||
=/ her (scot %p ship.arak)
|
||||
=/ ego (scot %p our)
|
||||
=/ wen (scot %da now)
|
||||
%+ turn .^((list tako) %cs ~[ego desk wen %base her desk.arak])
|
||||
|=(=tako .^(@uv %cs ~[ego desk wen %hash (scot %uv tako)]))
|
||||
--
|
||||
|
17
pkg/grid/ted/glob.hoon
Normal file
17
pkg/grid/ted/glob.hoon
Normal file
@ -0,0 +1,17 @@
|
||||
/- spider, docket
|
||||
/+ strandio
|
||||
=, strand=strand:spider
|
||||
^- thread:spider
|
||||
|= arg=vase
|
||||
=/ m (strand ,vase)
|
||||
^- form:m
|
||||
=+ !<([~ url=cord] arg)
|
||||
;< =glob:docket bind:m
|
||||
%+ (retry:strandio ,glob:docket) `5
|
||||
=/ n (strand ,(unit glob:docket))
|
||||
;< =cord bind:n (fetch-cord:strandio (trip url))
|
||||
%- pure:n
|
||||
%- mole
|
||||
|.
|
||||
;;(=glob:docket (cue cord))
|
||||
(pure:m !>(glob))
|
Loading…
Reference in New Issue
Block a user