summaryrefslogtreecommitdiff
path: root/desk/sur/tlon/cite.hoon
diff options
context:
space:
mode:
Diffstat (limited to 'desk/sur/tlon/cite.hoon')
-rw-r--r--desk/sur/tlon/cite.hoon57
1 files changed, 57 insertions, 0 deletions
diff --git a/desk/sur/tlon/cite.hoon b/desk/sur/tlon/cite.hoon
new file mode 100644
index 0000000..1d92a46
--- /dev/null
+++ b/desk/sur/tlon/cite.hoon
@@ -0,0 +1,57 @@
+/- g=tlon-groups
+=< cite
+|%
+++ purse
+ |= =(pole knot)
+ ^- (unit cite)
+ ?. =(~.1 -.pole) ~
+ =. pole +.pole
+ ?+ pole ~
+ [%chan agent=@ ship=@ name=@ rest=*]
+ =/ ship (slaw %p ship.pole)
+ ?~ ship ~
+ `[%chan [agent.pole u.ship name.pole] rest.pole]
+ ::
+ [%desk ship=@ name=@ rest=*]
+ =/ ship (slaw %p ship.pole)
+ ?~ ship ~
+ `[%desk [u.ship name.pole] rest.pole]
+ ::
+ [%group ship=@ name=@ ~]
+ =/ ship (slaw %p ship.pole)
+ ?~ ship ~
+ `[%group u.ship name.pole]
+ ==
+::
+++ parse
+ |= =path
+ ^- cite
+ (need (purse path))
+::
+++ print
+ |= c=cite
+ |^ ^- path
+ :- (scot %ud 1)
+ ?- -.c
+ %chan chan/(welp (nest nest.c) wer.c)
+ %desk desk/(welp (flag flag.c) wer.c)
+ %group group/(flag flag.c)
+ %bait bait/:(welp (flag grp.c) (flag gra.c) wer.c)
+ ==
+ ++ flag
+ |= f=flag:g
+ ~[(scot %p p.f) q.f]
+ ++ nest
+ |= n=nest:g
+ [p.n (flag q.n)]
+ --
+::
++$ cite
+ $% [%chan =nest:g wer=path]
+ [%group =flag:g]
+ [%desk =flag:g wer=path]
+ [%bait grp=flag:g gra=flag:g wer=path]
+ :: scry into groups when you receive a bait for a chat that doesn't exist yet
+ :: work out what app
+ ==
+--