diff --git a/pkg/base-dev/lib/docket.hoon b/pkg/base-dev/lib/docket.hoon index a354d10cc5..026bad4061 100644 --- a/pkg/base-dev/lib/docket.hoon +++ b/pkg/base-dev/lib/docket.hoon @@ -9,6 +9,8 @@ color=(unit @ux) glob=(unit url) base=(unit term) + site=(unit path) + image=(unit url) version=(unit version) website=(unit url) license=(unit cord) @@ -20,19 +22,23 @@ ?~ title.draft ~ ?~ info.draft ~ ?~ color.draft ~ - ?~ glob.draft ~ - ?~ base.draft ~ ?~ version.draft ~ ?~ website.draft ~ ?~ license.draft ~ + =/ href=(unit href) + ?^ site.draft `[%site u.site.draft] + ?~ base.draft ~ + ?~ glob.draft ~ + `[%glob [u.base.draft [%http u.glob]:draft]] + ?~ href ~ =, draft :- ~ :* %1 u.title u.info u.color - u.glob - u.base + u.href + image u.version u.website u.license @@ -52,6 +58,8 @@ %color draft(color `color.clause) %glob draft(glob `url.clause) %base draft(base `base.clause) + %site draft(site `path.clause) + %image draft(image `url.clause) %version draft(version `version.clause) %website draft(website `website.clause) %license draft(license `license.clause) @@ -61,23 +69,28 @@ ++ to-clauses |= d=docket ^- (list clause) - :~ title+title.d - info+info.d - color+color.d - glob+glob.d - base+base.d - version+version.d - website+website.d - license+license.d + %- zing + :~ :~ title+title.d + info+info.d + color+color.d + version+version.d + website+website.d + license+license.d + == + ?~ image.d ~ ~[image+u.image.d] + ?: ?=(%site -.href.d) ~[site+path.href.d] + :~ base+base.href.d + glob+url.glob-location.href.d + == == :: ++ spit-clause |= =clause ^- tape %+ weld " {(trip -.clause)}+" - ?- -.clause - ?(%title %info %glob %website %license %base) "'{(trip +.clause)}'" - %color (scow %ux color.clause) + ?+ -.clause "'{(trip +.clause)}'" + %color (scow %ux color.clause) + %site (spud path.clause) :: %version =, version.clause @@ -98,23 +111,23 @@ =, enjs:format |% :: - ++ update - |= u=^update + ++ charge-update + |= u=^charge-update ^- json %+ frond -.u ^- json ?- -.u - %del-dock s+desk.u + %del-charge s+desk.u :: %initial %- pairs %+ turn ~(tap by initial.u) - |=([=desk d=^docket] [desk (docket d)]) + |=([=desk c=^charge] [desk (charge c)]) :: - %add-dock + %add-charge %- pairs :~ desk+s+desk.u - docket+(docket docket.u) + charge+(charge charge.u) == == :: @@ -125,20 +138,34 @@ ?> ?=(%n -.p) (trip p.p) :: - ++ version |= v=^version ^- json :- %s %- crip "{(num major.v)}.{(num minor.v)}.{(num patch.v)}" - + :: ++ merge |= [a=json b=json] ^- json ?> &(?=(%o -.a) ?=(%o -.b)) [%o (~(uni by p.a) p.b)] :: + ++ href + |= h=^href + %+ frond -.h + ?- -.h + %glob (pairs base+s+base.h ~) + %site s+(spat path.h) + == + :: + ++ charge + |= c=^charge + %+ merge (docket docket.c) + %- pairs + :~ chad+(chad chad.c) + == + :: ++ docket |= d=^docket ^- json @@ -146,30 +173,17 @@ :~ title+s+title.d info+s+info.d color+s+(scot %ux color.d) - glob+s+glob.d - base+s+base.d + href+(href href.d) version+(version version.d) license+s+license.d website+s+website.d == :: - ++ case - |= c=^case + ++ chad + |= c=^chad %+ frond -.c - ?- -.c - %da s+(scot %da p.c) - %tas s+(scot %tas p.c) - %ud (numb p.c) - == - :: - ++ treaty - |= t=^treaty - %+ merge (docket docket.t) - %- pairs - :~ ship+s+(scot %p ship.t) - desk+s+desk.t - cass+(case case.t) - hash+s+(scot %uv hash.t) + ?+ -.c ~ + %hung s+err.c == -- -- diff --git a/pkg/base-dev/lib/treaty.hoon b/pkg/base-dev/lib/treaty.hoon new file mode 100644 index 0000000000..d9703021ac --- /dev/null +++ b/pkg/base-dev/lib/treaty.hoon @@ -0,0 +1,81 @@ +/- *treaty +/+ dock=docket +|% +++ enjs + =, enjs:format + |% + ++ merge + |= [a=json b=json] + ^- json + ?> &(?=(%o -.a) ?=(%o -.b)) + [%o (~(uni by p.a) p.b)] + :: + ++ treaty + |= t=^treaty + %+ merge (docket:enjs:dock docket.t) + %- pairs + :~ ship+s+(scot %p ship.t) + desk+s+desk.t + cass+(case case.t) + hash+s+(scot %uv hash.t) + == + :: + ++ case + |= c=^case + %+ frond -.c + ?- -.c + %da s+(scot %da p.c) + %tas s+(scot %tas p.c) + %ud (numb p.c) + == + ++ foreign-desk + |= [s=^ship =desk] + ^- cord + (crip "{(scow %p s)}/{(trip desk)}") + :: + ++ alliance + |= a=^alliance + ^- json + :- %a + %+ turn ~(tap in a) + |= [=^ship =desk] + ^- json + s+(foreign-desk ship desk) + :: + ++ treaty-update + |= u=update:^treaty + ^- json + %+ frond -.u + ?- -.u + %add (treaty treaty.u) + %del s+(foreign-desk +.u) + :: + %ini + %- pairs + %+ turn ~(tap by init.u) + |= [[s=^ship =desk] t=^treaty] + [(foreign-desk s desk) (treaty t)] + == + :: + ++ ally-update + |= u=update:ally + ^- json + %+ frond -.u + ?- -.u + ?(%add %del) s+(scot %p ship.u) + :: + %ini + %- pairs + %+ turn ~(tap by init.u) + |= [s=^ship a=^alliance] + [(scot %p s) (alliance a)] + :: + %new + %- pairs + :~ ship+s+(scot %p ship.u) + alliance+(alliance alliance.u) + == + == + -- +-- + diff --git a/pkg/base-dev/sur/docket.hoon b/pkg/base-dev/sur/docket.hoon index 5f2151b66e..5907433c26 100644 --- a/pkg/base-dev/sur/docket.hoon +++ b/pkg/base-dev/sur/docket.hoon @@ -6,11 +6,36 @@ +$ glob (map path mime) :: +$ url cord +:: $glob-location: How to retrieve a glob +:: ++$ glob-location + $% [%http =url] + == +:: $href: Where a tile links to +:: ++$ href + $% [%glob base=term =glob-location] + [%site =path] + == +:: $chad: State of a docket +:: ++$ chad + $% :: Done + [%glob =glob] + [%site ~] + :: Waiting + [%install ~] + [%suspend ~] + :: Error + [%hung err=cord] + == :: :: $charge: A realized $docket :: +$ charge - [=glob =docket] + $: =docket + =chad + == :: :: $clause: A key and value, as part of a docket :: @@ -21,34 +46,31 @@ [%info info=@t] [%color color=@ux] [%glob url=cord] + [%image =url] + [%site =path] [%base base=term] [%version =version] [%website website=url] [%license license=cord] == :: -:: $docket: A infoion of JS bundles for a desk +:: $docket: A description of JS bundles for a desk :: +$ docket $: %1 title=@t info=@t color=@ux - glob=url - base=term + =href + image=(unit url) =version website=url license=cord == :: -:: $treaty: A foreign docket -+$ treaty - [=ship =desk =case hash=@uv =docket] -:: -:: -+$ update - $% [%initial initial=(map desk docket)] - [%add-dock =desk =docket] - [%del-dock =desk] ++$ charge-update + $% [%initial initial=(map desk charge)] + [%add-charge =desk =charge] + [%del-charge =desk] == -- diff --git a/pkg/grid/desk.docket b/pkg/grid/desk.docket index d6dcecdabc..78029dcce8 100644 --- a/pkg/grid/desk.docket +++ b/pkg/grid/desk.docket @@ -1,5 +1,5 @@ :~ title+'Grid' - info+'' + info+'Test desc' color+0xee.5432 glob+'https://bootstrap.urbit.org/glob-0v3.fpsbi.pfo1b.ttlta.u629v.cr9m0.glob' base+'grid'