mirror of
https://github.com/urbit/shrub.git
synced 2024-12-13 16:03:36 +03:00
Merge branch 'test' of https://github.com/urbit/urbit into test
This commit is contained in:
commit
ee8e945e7f
@ -1668,6 +1668,7 @@
|
||||
[hen [%slip %a %kick now]]
|
||||
[hen [%slip %e %init p.bon]]
|
||||
[hen [%slip %g %init p.bon]]
|
||||
[hen [%slip %d %init p.bon]] :: must be after gall
|
||||
~
|
||||
==
|
||||
::
|
||||
@ -1688,6 +1689,15 @@
|
||||
:: ~& [%rx p.bon q.bon]
|
||||
?> ?=([@ *] q.q.bon)
|
||||
?: ?=(%r i.q.q.bon)
|
||||
?: ?=([%ta *] t.q.q.bon)
|
||||
=+ wil=((hard (unit will)) r.bon)
|
||||
:_ fox
|
||||
?~ wil ~
|
||||
=+ ^= pax
|
||||
:+ (scot %p p.p.bon)
|
||||
(scot %p q.p.bon)
|
||||
q.q.bon
|
||||
[hen %pass pax %g %rote p.bon /began 0 %m %will u.wil]~
|
||||
?> ?=([@ @ *] t.q.q.bon)
|
||||
:_ fox
|
||||
=+ [cak=i.t.q.q.bon ven=i.t.t.q.q.bon]
|
||||
@ -1713,7 +1723,8 @@
|
||||
==
|
||||
::
|
||||
%pi :: ping
|
||||
$(bon [%wine p.bon " sent a ping at {(scow %da now)}"])
|
||||
`fox
|
||||
:: $(bon [%wine p.bon " sent a ping at {(scow %da now)}"])
|
||||
::
|
||||
?(%pr %pc) :: %pr, %pc
|
||||
:_ fox
|
||||
|
@ -53,8 +53,8 @@
|
||||
[%sith p=@p q=@uw r=?] ::
|
||||
[%want p=sock q=path r=*] ::
|
||||
== == ::
|
||||
$: %b ::
|
||||
$% [%hail ~] :: to %batz
|
||||
$: %b :: to %batz
|
||||
$% [%hail ~] ::
|
||||
[%line p=@t] ::
|
||||
== == ::
|
||||
$: %c :: to %clay
|
||||
|
126
arvo/clay.hoon
126
arvo/clay.hoon
@ -1,6 +1,6 @@
|
||||
!:
|
||||
:: clay (4c), revision control
|
||||
::
|
||||
!:
|
||||
|= pit=vase
|
||||
=> |%
|
||||
++ cult (map duct rove) :: subscriptions
|
||||
@ -11,12 +11,14 @@
|
||||
[%writ p=riot] :: response
|
||||
== ::
|
||||
++ kiss :: in request ->$
|
||||
$% [%info p=@p q=@tas r=nori] :: internal edit
|
||||
$% [%font p=@p q=@tas r=@p s=@tas] :: set upstream
|
||||
[%info p=@p q=@tas r=nori] :: internal edit
|
||||
[%ingo p=@p q=@tas r=nori] :: internal noun edit
|
||||
[%init p=@p] :: report install
|
||||
[%into p=@p q=@tas r=nori] :: external edit
|
||||
[%invo p=@p q=@tas r=nori] :: external noun edit
|
||||
[%merg p=@p q=@tas r=mizu] :: internal change
|
||||
[%plug p=@p q=@tas r=@p s=@tas] :: unset upstream
|
||||
[%wart p=sock q=@tas r=path s=*] :: network request
|
||||
[%warp p=sock q=riff] :: file request
|
||||
== ::
|
||||
@ -32,7 +34,9 @@
|
||||
$% [%want p=sock q=path r=*] ::
|
||||
== == ::
|
||||
$: %c :: to %clay
|
||||
$% [%warp p=sock q=riff] ::
|
||||
$% [%font p=@p q=@tas r=@p s=@tas] ::
|
||||
[%merg p=@p q=@tas r=mizu] ::
|
||||
[%warp p=sock q=riff] ::
|
||||
== == ::
|
||||
$: %d ::
|
||||
$% [%flog p=[%crud p=@tas q=(list tank)]] :: to %dill
|
||||
@ -59,6 +63,7 @@
|
||||
$: fat=(map ship room) :: domestic
|
||||
hoy=(map ship rung) :: foreign
|
||||
ran=rang :: hashes
|
||||
sor=(map ,[p=@p q=@tas r=@p s=@tas] duct) :: upstreams
|
||||
== ::
|
||||
++ rave :: general request
|
||||
$% [& p=mood] :: single request
|
||||
@ -121,8 +126,7 @@
|
||||
[%pass b %a %want [who c] [%q %re p.q.d (scot %ud p.d) ~] q.d]
|
||||
::
|
||||
%+ turn (flop tag)
|
||||
|= [a=duct b=path c=note]
|
||||
[a %pass b c]
|
||||
|=([a=duct b=path c=note] [a %pass b c])
|
||||
==
|
||||
::
|
||||
++ aver :: read
|
||||
@ -381,6 +385,52 @@
|
||||
^- rove
|
||||
[%| p.p.rav q.p.rav r.p.rav ~]
|
||||
::
|
||||
++ sync
|
||||
|= [hen=duct her=@p sud=@tas rot=riot]
|
||||
^+ +>.$
|
||||
?~ rot
|
||||
~& "autosync from {<sud>} on {<her>} to {<syd>} on {<who>} stopped"
|
||||
+>.$
|
||||
?: ?=(%y p.p.u.rot)
|
||||
%= +>.$
|
||||
tag
|
||||
:_ tag
|
||||
:* hen /auto/(scot %p who)/[syd]/(scot %p her)/[sud]/v
|
||||
%c %warp [who her] sud
|
||||
`[%& %v q.p.u.rot /]
|
||||
==
|
||||
==
|
||||
?> ?=(%v p.p.u.rot)
|
||||
=+ der=((hard dome) r.u.rot)
|
||||
=+ ^= lum
|
||||
^- (unit (unit mizu))
|
||||
%^ ~(construct-merge ze now dom ran)
|
||||
?:(=(0 let.dom) %init %mate)
|
||||
who
|
||||
:+ syd
|
||||
`saba`[her sud [0 let.der] der]
|
||||
now
|
||||
=. tag
|
||||
:_ tag
|
||||
:* hen /auto/(scot %p who)/[syd]/(scot %p her)/[sud]/y
|
||||
%c %warp [who her] sud
|
||||
`[%& %y [%ud +(let.der)] /]
|
||||
==
|
||||
?~ lum
|
||||
~& "autosync from {<sud>} on {<her>} to {<syd>} on {<who>} failed"
|
||||
~& "please merge manually"
|
||||
+>.$
|
||||
?~ u.lum
|
||||
~& "autosync from {<sud>} on {<her>} to {<syd>} on {<who>} up to date"
|
||||
+>.$
|
||||
%= +>.$
|
||||
tag
|
||||
:_ tag
|
||||
:* hen /auto/(scot %p who)/[syd]/(scot %p her)/[sud]/merg
|
||||
%c %merg who syd u.u.lum
|
||||
==
|
||||
==
|
||||
::
|
||||
++ wake :: update subscribers
|
||||
^+ .
|
||||
=+ xiq=(~(tap by qyx) ~)
|
||||
@ -502,19 +552,25 @@
|
||||
^- [p=(list move) q=_..^$]
|
||||
?- -.q.hic
|
||||
%init
|
||||
[~ ..^$(fat.ruf (~(put by fat.ruf) p.q.hic [hen ~ ~]))]
|
||||
:_ ..^$(fat.ruf (~(put by fat.ruf) p.q.hic [hen ~ ~]))
|
||||
=+ bos=(sein p.q.hic)
|
||||
~& [%bos bos p.q.hic]
|
||||
?: =(bos p.q.hic) ~
|
||||
^- (list move)
|
||||
%+ turn (limo ~[%main %arvo %try])
|
||||
|= syd=@tas
|
||||
[hen %pass / %c %font p.q.hic syd bos syd]
|
||||
::
|
||||
%font
|
||||
?: (~(has by sor.ruf) +.q.hic) `..^$
|
||||
:_ ..^$(sor.ruf (~(put by sor.ruf) +.q.hic hen))
|
||||
:~ :* hen %pass
|
||||
/auto/(scot %p p.q.hic)/[q.q.hic]/(scot %p r.q.hic)/[s.q.hic]/y
|
||||
%c %warp [p.q.hic r.q.hic] s.q.hic
|
||||
`[%& %y [%da now] /]
|
||||
==
|
||||
==
|
||||
::
|
||||
%merg :: direct state up
|
||||
=^ mos ruf
|
||||
=+ une=(un p.q.hic now ruf)
|
||||
=+ ^= zat
|
||||
(exem:(di:wake:une q.q.hic) hen now r.q.hic)
|
||||
=+ zot=abet.zat
|
||||
:- -.zot
|
||||
=. une (pish:une q.q.hic +.zot ran.zat)
|
||||
abet:une(hez.yar ?.(=(%into -.q.hic) hez.yar.une [~ hen]))
|
||||
[mos ..^$]
|
||||
::
|
||||
?(%info %into)
|
||||
?: =(%$ q.q.hic)
|
||||
?. ?=(%into -.q.hic) [~ ..^$]
|
||||
@ -544,6 +600,31 @@
|
||||
=. une (pish:une q.q.hic +.zot ran.zat)
|
||||
abet:une(hez.yar ?.(=(%invo -.q.hic) hez.yar.une [~ hen]))
|
||||
[mos ..^$]
|
||||
::
|
||||
%merg :: direct state up
|
||||
=^ mos ruf
|
||||
=+ une=(un p.q.hic now ruf)
|
||||
=+ ^= zat
|
||||
(exem:(di:wake:une q.q.hic) hen now r.q.hic)
|
||||
=+ zot=abet.zat
|
||||
:- -.zot
|
||||
=. une (pish:une q.q.hic +.zot ran.zat)
|
||||
abet:une(hez.yar ?.(=(%into -.q.hic) hez.yar.une [~ hen]))
|
||||
[mos ..^$]
|
||||
::
|
||||
%plug
|
||||
?. (~(has by sor.ruf) +.q.hic) `..^$
|
||||
:_ ..^$(sor.ruf (~(del by sor.ruf) +.q.hic))
|
||||
=+ hyn=(~(got by sor.ruf) +.q.hic)
|
||||
:~ :* hyn %pass
|
||||
/auto/(scot %p p.q.hic)/[q.q.hic]/(scot %p r.q.hic)/[s.q.hic]/y
|
||||
%c %warp [p.q.hic r.q.hic] s.q.hic ~
|
||||
==
|
||||
:* hyn %pass
|
||||
/auto/(scot %p p.q.hic)/[q.q.hic]/(scot %p r.q.hic)/[s.q.hic]/v
|
||||
%c %warp [p.q.hic r.q.hic] s.q.hic ~
|
||||
==
|
||||
==
|
||||
::
|
||||
%warp
|
||||
=^ mos ruf
|
||||
@ -606,6 +687,17 @@
|
||||
++ take :: accept response
|
||||
|= [tea=wire hen=duct hin=(hypo sign)]
|
||||
^- [p=(list move) q=_..^$]
|
||||
?: ?=([%auto @ @ @ @ ?(%y %v) ~] tea)
|
||||
?> ?=(%writ -.+.q.hin)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=* sud i.t.t.tea
|
||||
=+ her=(slav %p i.t.t.t.tea)
|
||||
=* syd i.t.t.t.t.tea
|
||||
=+ une=(un our now ruf)
|
||||
=+ wex=(di:une syd)
|
||||
=+ wao=(sync:wex hen her sud p.q.hin)
|
||||
=+ woo=abet:wao
|
||||
[-.woo ..^$(ruf abet:(pish:une syd +.woo ran.wao))]
|
||||
?- -.+.q.hin
|
||||
%crud
|
||||
[[[hen %slip %d %flog +.q.hin] ~] ..^$]
|
||||
|
276
arvo/dill.hoon
276
arvo/dill.hoon
@ -7,11 +7,11 @@
|
||||
$% [%bbye ~] :: reset prompt
|
||||
[%blit p=(list blit)] :: terminal output
|
||||
[%init p=@p] :: report install
|
||||
[%logo p=@] :: logout
|
||||
[%logo ~] :: logout
|
||||
[%veer p=@ta q=path r=@t] :: install vane
|
||||
[%vega p=path] :: reboot by path
|
||||
[%verb ~] :: by %batz
|
||||
==
|
||||
[%verb ~] ::
|
||||
== ::
|
||||
++ kiss :: in request ->$
|
||||
$% [%belt p=belt] :: terminal input
|
||||
[%blew p=blew] :: terminal config
|
||||
@ -21,6 +21,7 @@
|
||||
[%hail ~] :: terminal refresh
|
||||
[%hook ~] :: this term hung up
|
||||
[%harm ~] :: all terms hung up
|
||||
[%init p=ship] :: after gall ready
|
||||
[%noop ~] :: no operation
|
||||
[%talk p=tank] ::
|
||||
[%text p=tape] ::
|
||||
@ -29,42 +30,92 @@
|
||||
$% [%crud p=@tas q=(list tank)] ::
|
||||
[%text p=tape] ::
|
||||
== ::
|
||||
++ mess :: message to terminal
|
||||
$% [%term-ctrl p=(hypo ,%hail)] ::
|
||||
[%term-in p=(hypo term-in)] ::
|
||||
== ::
|
||||
++ move ,[p=duct q=(mold note gift)] :: local move
|
||||
++ note :: out request $->
|
||||
$% $: %b :: to %batz
|
||||
$% [%hail ~] ::
|
||||
[%harm ~] ::
|
||||
[%hook ~] ::
|
||||
[%kill p=~] ::
|
||||
[%line p=@t] ::
|
||||
[%ling ~] ::
|
||||
[%make p=(unit ,@t) q=@ud r=@ s=?] ::
|
||||
$% $: %a ::
|
||||
$% [%make p=(unit ,@t) q=@ud r=@ s=?] ::
|
||||
[%sith p=@p q=@uw r=?] ::
|
||||
== == ::
|
||||
$: %d :: to %dill
|
||||
$: %c ::
|
||||
$% [%warp p=sock q=riff] ::
|
||||
== == ::
|
||||
::S $% $: %b :: to %batz
|
||||
::S $% [%hail ~] ::
|
||||
::S [%harm ~] ::
|
||||
::S [%hook ~] ::
|
||||
::S [%kill p=~] ::
|
||||
::S [%line p=@t] ::
|
||||
::S [%ling ~] ::
|
||||
::S [%make p=(unit ,@t) q=@ud r=@ s=?] ::
|
||||
::S [%sith p=@p q=@uw r=?] ::
|
||||
::S == == ::
|
||||
$: %d ::
|
||||
$% [%crud p=@tas q=(list tank)] ::
|
||||
[%text p=tape] ::
|
||||
== == ::
|
||||
$: %g ::
|
||||
$% [%mess p=[p=ship q=path] q=ship r=mess] ::
|
||||
[%show p=[p=ship q=path] q=ship r=path] ::
|
||||
== == ::
|
||||
$: %t ::
|
||||
$% [%wait p=@da] ::
|
||||
== == == ::
|
||||
++ riff ,[p=desk q=(unit rave)] :: see %clay
|
||||
++ sign :: in result $<-
|
||||
$? $: %b :: by %batz
|
||||
$% [%hail ~] ::
|
||||
[%helo p=path q=prod] ::
|
||||
[%logo p=@] ::
|
||||
[%save p=path q=@] ::
|
||||
[%sage p=path q=*] ::
|
||||
[%talk p=tank] ::
|
||||
[%tell p=(list ,@t)] ::
|
||||
[%text p=tape] ::
|
||||
$?
|
||||
::S $: %b :: by %batz
|
||||
::S $% [%hail ~] ::
|
||||
::S [%helo p=path q=prod] ::
|
||||
::S [%logo p=@] ::
|
||||
::S [%save p=path q=@] ::
|
||||
::S [%sage p=path q=*] ::
|
||||
::S [%talk p=tank] ::
|
||||
::S [%tell p=(list ,@t)] ::
|
||||
::S [%text p=tape] ::
|
||||
::S [%verb ~] ::
|
||||
::S [%veer p=@ta q=path r=@t] ::
|
||||
::S [%vega p=path] ::
|
||||
::S [%warn p=tape] ::
|
||||
::S == == ::
|
||||
$: %c ::
|
||||
$% [%writ p=riot] ::
|
||||
== == ::
|
||||
$: %g ::
|
||||
$% [%mean p=ares] ::
|
||||
[%nice ~] ::
|
||||
$: %rush :: XX
|
||||
$% [%term-line q=term-line] ::
|
||||
[%hymn q=manx] ::
|
||||
[%json q=json] ::
|
||||
== == ::
|
||||
$: %rust ::
|
||||
$% [%term-line q=term-line] ::
|
||||
[%hymn q=manx] ::
|
||||
[%json q=json] ::
|
||||
== == ::
|
||||
[%verb ~] ::
|
||||
[%sage p=path q=*] ::
|
||||
[%veer p=@ta q=path r=@t] ::
|
||||
[%vega p=path] ::
|
||||
[%warn p=tape] ::
|
||||
== == ::
|
||||
$: @tas :: by any
|
||||
$% [%crud p=@tas q=(list tank)] ::
|
||||
[%init p=@p] ::
|
||||
[%note p=@tD q=tank] ::
|
||||
== == == ::
|
||||
++ term-in ::
|
||||
$: pax=path ::
|
||||
$= jof ::
|
||||
$% [%line p=span] ::
|
||||
[%res p=span] ::
|
||||
[%cmd p=char] ::
|
||||
== == ::
|
||||
++ term-line ,[p=[p=cord q=prom] q=(list cord) r=(list tark)]
|
||||
++ tark ?(tank [%stem p=tank q=tank]) ::
|
||||
:::::::: :: dill tiles
|
||||
++ bein :: terminal control
|
||||
$: $: bul=@ud :: buffer length
|
||||
@ -107,6 +158,16 @@
|
||||
r=(list (list ,@c)) :: kills
|
||||
== ::
|
||||
++ blur ,[p=@ud q=(unit bein) r=blot] :: columns, prompt
|
||||
++ kyev ::
|
||||
$: p=(set ?(%ctrl %shift %alt %meta)) ::
|
||||
q=$|(cord [%act speck]) ::
|
||||
== ::
|
||||
++ speck ::
|
||||
$? %ctrl %shift %alt %meta %entr %esc ::
|
||||
%caps %uncap %pgup %pgdn %home %end ::
|
||||
%baxp %del %ins %up %down %left ::
|
||||
%right ::
|
||||
== ::
|
||||
++ yard :: terminal state
|
||||
$: p=? :: verbose
|
||||
q=blur :: display state
|
||||
@ -115,10 +176,11 @@
|
||||
-- =>
|
||||
|%
|
||||
++ dy
|
||||
|= [hen=duct dug=(map duct yard)]
|
||||
|= [hen=duct our=ship def=(unit duct) dug=(map duct yard)]
|
||||
=+ ^= yar ^- yard
|
||||
=+ yur=(~(get by dug) hen)
|
||||
?^ yur u.yur
|
||||
?^ def (~(got by dug) u.def)
|
||||
[& [80 ~ *blot] ~]
|
||||
=| mos=(list move)
|
||||
|%
|
||||
@ -267,53 +329,96 @@
|
||||
?~ q.+.sih +>.^$
|
||||
(fume:$(q.+.sih t.q.+.sih) '!' `tank`i.q.+.sih)
|
||||
::
|
||||
%helo :: trigger prompt
|
||||
::S %helo :: trigger prompt
|
||||
::S %- edit
|
||||
::S =| bed=bein
|
||||
::S =+ ^= hyt ^- hist
|
||||
::S =+ hyt=(~(get by r.yar) p.+.sih)
|
||||
::S ?~(hyt *hist u.hyt)
|
||||
::S ?: &(?=(^ q.q.yar) =(p.+.sih hux.u.q.q.yar))
|
||||
::S %= u.q.q.yar
|
||||
::S hyt [+(p.hyt) [%$ q.hyt]]
|
||||
::S pot q.q.+.sih
|
||||
::S pol (lent q.q.+.sih)
|
||||
::S buy p.q.+.sih
|
||||
::S ==
|
||||
::S =+ zon=(tuba r.q.+.sih)
|
||||
::S =+ zow=(lent zon)
|
||||
::S %= bed
|
||||
::S bul zow
|
||||
::S bus zow
|
||||
::S but zon
|
||||
::S buy p.q.+.sih
|
||||
::S hux p.+.sih
|
||||
::S hiz 0
|
||||
::S hyt [+(p.hyt) [%$ q.hyt]]
|
||||
::S pot q.q.+.sih
|
||||
::S pol (lent q.q.+.sih)
|
||||
::S ==
|
||||
::S ::
|
||||
::S ?(%hail %make %sith)
|
||||
::S +>.$(mos :_(mos [hen %pass ~ %b +.sih]))
|
||||
::S ::
|
||||
%mean ~& %dill-mean +>.$
|
||||
%nice +>.$
|
||||
%note ?.(p.yar +>.$ (fume p.+.sih q.+.sih)) :: debug message
|
||||
?(%rush %rust) :: XX reset prompt
|
||||
?> ?=(%term-line +>-.sih)
|
||||
=. +>.$
|
||||
=- (furl (zing (turn (flop r.q.sih) -)))
|
||||
|= a=tark
|
||||
^- wall
|
||||
?+ -.a (~(win re a) 0 p.q.yar)
|
||||
%stem ~[~(ram re p.a) ~(ram re p.a)]
|
||||
==
|
||||
%- edit
|
||||
=| bed=bein
|
||||
=+ ^= hyt ^- hist
|
||||
=+ hyt=(~(get by r.yar) p.+.sih)
|
||||
=+ hyt=(~(get by r.yar) /)
|
||||
?~(hyt *hist u.hyt)
|
||||
?: &(?=(^ q.q.yar) =(p.+.sih hux.u.q.q.yar))
|
||||
?: &(?=(^ q.q.yar) =(/ hux.u.q.q.yar))
|
||||
%= u.q.q.yar
|
||||
hyt [+(p.hyt) [%$ q.hyt]]
|
||||
pot q.q.+.sih
|
||||
pol (lent q.q.+.sih)
|
||||
buy p.q.+.sih
|
||||
pot (trip p.p.q.sih)
|
||||
pol (met 3 p.p.q.sih)
|
||||
buy q.p.q.sih
|
||||
==
|
||||
=+ zon=(tuba r.q.+.sih)
|
||||
=+ zow=(lent zon)
|
||||
%= bed
|
||||
bul zow
|
||||
bus zow
|
||||
but zon
|
||||
buy p.q.+.sih
|
||||
hux p.+.sih
|
||||
%_ bed
|
||||
bul 0
|
||||
bus 0
|
||||
but ~
|
||||
buy q.p.q.sih
|
||||
hux /
|
||||
hiz 0
|
||||
hyt [+(p.hyt) [%$ q.hyt]]
|
||||
pot q.q.+.sih
|
||||
pol (lent q.q.+.sih)
|
||||
pot (trip p.p.q.sih)
|
||||
pol (met 3 p.p.q.sih)
|
||||
==
|
||||
::
|
||||
?(%hail %make %sith)
|
||||
+>.$(mos :_(mos [hen %pass ~ %b +.sih]))
|
||||
::
|
||||
%note ?.(p.yar +>.$ (fume p.+.sih q.+.sih)) :: debug message
|
||||
%sage :: write a jamfile
|
||||
%= +>.$
|
||||
mos :_(mos [hen [%give %blit [%sag p.+.sih q.+.sih] ~]])
|
||||
==
|
||||
::
|
||||
%save :: write a file
|
||||
%= +>.$
|
||||
mos :_(mos [hen [%give %blit [%sav p.+.sih q.+.sih] ~]])
|
||||
==
|
||||
::
|
||||
%tell (furl (turn p.+.sih |=(a=@t (trip a)))) :: wall of text
|
||||
%talk (furl (~(win re p.+.sih) 0 p.q.yar)) :: program output
|
||||
%text $(+.sih [%talk %leaf p.+.sih]) :: simple message
|
||||
%warn (fume '~' [%leaf p.+.sih]) :: system message
|
||||
?(%init %logo %veer %vega %verb) :: drop-throughs
|
||||
::S ::
|
||||
::S %save :: write a file
|
||||
::S %= +>.$
|
||||
::S mos :_(mos [hen [%give %blit [%sav p.+.sih q.+.sih] ~]])
|
||||
::S ==
|
||||
::S ::
|
||||
::S %tell (furl (turn p.+.sih |=(a=@t (trip a)))) :: wall of text
|
||||
::S %talk (furl (~(win re p.+.sih) 0 p.q.yar)) :: program output
|
||||
::S %text $(+.sih [%talk %leaf p.+.sih]) :: simple message
|
||||
::S %warn (fume '~' [%leaf p.+.sih]) :: system message
|
||||
::S ?(%init %logo %veer %vega %verb) :: drop-throughs
|
||||
::S +>(mos :_(mos [hen %give +.sih]))
|
||||
?(%init %veer %vega %verb) :: drop-throughs
|
||||
+>(mos :_(mos [hen %give +.sih]))
|
||||
%writ :: file exists
|
||||
%= +>.$
|
||||
mos
|
||||
:_ mos
|
||||
[hen %pass / %g %show [our /terminal] our /lines]
|
||||
==
|
||||
==
|
||||
::
|
||||
++ lear :: handle request
|
||||
@ -324,6 +429,7 @@
|
||||
%noop +>
|
||||
%belt :: terminal input
|
||||
?~ q.q.yar
|
||||
~& %dill-no-bein
|
||||
beep
|
||||
?^ hyr.u.q.q.yar :: live search
|
||||
?+ p.kyz $(hiz.u.q.q.yar 0, hyr.u.q.q.yar ~)
|
||||
@ -389,7 +495,7 @@
|
||||
%d ?: ?& =(0 bul.u.q.q.yar)
|
||||
=(0 bus.u.q.q.yar)
|
||||
==
|
||||
+>.$(mos :_(mos [hen %pass ~ %b [%kill ~]]))
|
||||
+>.$(mos :_(mos [hen %give %logo ~]))
|
||||
$(kyz [%belt %del ~])
|
||||
%e (edit u.q.q.yar(bus bul.u.q.q.yar))
|
||||
%f $(kyz [%belt %aro %r])
|
||||
@ -438,7 +544,8 @@
|
||||
%r (edit u.q.q.yar(hyr [~ ~]))
|
||||
:: TODO
|
||||
:: %w +>.$(mos :_(mos [hen %pass ~ %b [%limn ~]]))
|
||||
%x +>.$(mos :_(mos [hen %pass ~ %b [%ling ~]]))
|
||||
%x +>.$(mos :_(mos (poke %term-in -:!>(*term-in) / %cmd %x)))
|
||||
::S %x +>.$(mos :_(mos [hen %pass ~ %b [%ling ~]]))
|
||||
%y ?: =(0 p.r.q.yar)
|
||||
beep
|
||||
$(kyz [%belt %txt (snag q.r.q.yar r.r.q.yar)])
|
||||
@ -507,9 +614,11 @@
|
||||
[p.hyt.u.q.q.yar [jab ?~(q.hyt.u.q.q.yar ~ +.q.hyt.u.q.q.yar)]]
|
||||
::
|
||||
mos
|
||||
:* [hen %pass ~ %b [%hail ~]]
|
||||
:* ::S [hen %pass ~ %b [%hail ~]]
|
||||
(poke %term-ctrl -:!>(%hail) %hail)
|
||||
[hen %give [%bbye ~]]
|
||||
[hen %pass ~ %b [%line jab]]
|
||||
::S [hen %pass ~ %b [%line jab]]
|
||||
(poke %term-in -:!>(*term-in) / %line jab)
|
||||
[hen %give [%blit [[%mor ~] ~]]]
|
||||
mos
|
||||
==
|
||||
@ -533,9 +642,9 @@
|
||||
::
|
||||
%blew +>.$(p.q.yar p.p.kyz) :: window size
|
||||
%boot
|
||||
%= +>.$
|
||||
mos
|
||||
:_(mos [hen %pass ~ (note %b p.kyz)])
|
||||
%= +>.$
|
||||
mos
|
||||
:_(mos [hen %pass ~ (note %a p.kyz)])
|
||||
==
|
||||
::
|
||||
%crud :: error trace
|
||||
@ -545,30 +654,51 @@
|
||||
(fume:$(q.kyz t.q.kyz) '!' `tank`i.q.kyz)
|
||||
::
|
||||
%hail :: refresh
|
||||
+>.$(mos :_(mos [hen %pass ~ %b kyz]))
|
||||
+>.$
|
||||
::S +>.$(mos :_(mos [hen %pass ~ %b kyz]))
|
||||
::
|
||||
%harm :: all terms hung up
|
||||
=+ nug=((map duct yard) [[hen (~(get by dug) hen)] ~ ~])
|
||||
^+ +>.$
|
||||
%= +>.$
|
||||
dug nug
|
||||
mos :_(mos [hen %pass ~ %b kyz])
|
||||
::S mos :_(mos [hen %pass ~ %b kyz])
|
||||
==
|
||||
::
|
||||
%hook :: this term hung up
|
||||
+>.$(dug (~(del by dug) hen), mos :_(mos [hen %pass ~ %b kyz]))
|
||||
~& %dill-hook-not-implemented
|
||||
+>.$
|
||||
::S +>.$(dug (~(del by dug) hen), mos :_(mos [hen %pass ~ %b kyz]))
|
||||
::
|
||||
%init
|
||||
=. def `(fall def +.hen)
|
||||
%= +>.$
|
||||
our p.kyz
|
||||
mos
|
||||
:_ mos
|
||||
[(need def) %pass / %c %warp [p.kyz p.kyz] %main `[%& %y [%ud 1] /]]
|
||||
==
|
||||
::
|
||||
%talk (furl (~(win re p.kyz) 0 p.q.yar)) :: program output
|
||||
%text $(kyz [%talk %leaf p.kyz]) :: simple message
|
||||
==
|
||||
::
|
||||
++ poke
|
||||
|= msg=mess
|
||||
^- move
|
||||
:^ hen %pass /
|
||||
:^ %g %mess [our /terminal]
|
||||
:- our msg
|
||||
::
|
||||
++ yerk :: complete core
|
||||
^- [p=(list move) q=(map duct yard)]
|
||||
:- (flop mos)
|
||||
^- [p=(list move) q=ship r=(unit duct) s=(map duct yard)]
|
||||
:^ (flop mos) our def
|
||||
(~(put by dug) hen yar)
|
||||
--
|
||||
--
|
||||
=| $: %0 ::
|
||||
our=ship ::
|
||||
def=(unit duct) ::
|
||||
dug=(map duct yard) ::
|
||||
== ::
|
||||
|= [now=@da eny=@ ski=sled] :: current invocation
|
||||
@ -592,8 +722,8 @@
|
||||
:_ ..^$
|
||||
%+ turn (~(tap by dug) *(list ,[p=duct q=yard]))
|
||||
|=([a=duct b=yard] [a %slip %d p.q.hic])
|
||||
=^ moz dug yerk:(lear:(dy hen dug) q.hic)
|
||||
[moz ..^$]
|
||||
=+ res=yerk:(lear:(dy hen our def dug) q.hic)
|
||||
[-.res ..^$(our +<.res, dug +>+.res, def +>-.res)]
|
||||
::
|
||||
++ doze
|
||||
|= [now=@da hen=duct]
|
||||
@ -601,19 +731,19 @@
|
||||
~
|
||||
::
|
||||
++ load
|
||||
|= old=[%0 dug=(map duct yard)]
|
||||
|= old=[%0 our=ship def=(unit duct) dug=(map duct yard)]
|
||||
^+ ..^$
|
||||
..^$(dug dug.old)
|
||||
..^$(our our.old, def def.old, dug dug.old)
|
||||
::
|
||||
++ scry
|
||||
|= [fur=(unit (set monk)) ren=@tas his=ship syd=desk lot=coin tyl=path]
|
||||
^- (unit (unit (pair mark ,*)))
|
||||
[~ ~ [%tank >dug<]]
|
||||
::
|
||||
++ stay [%0 dug]
|
||||
++ stay [%0 our def dug]
|
||||
++ take :: process move
|
||||
|= [tea=wire hen=duct hin=(hypo sign)]
|
||||
^- [p=(list move) q=_..^$]
|
||||
=^ moz dug yerk:(leap:(dy hen dug) tea q.hin)
|
||||
[moz ..^$]
|
||||
=+ res=yerk:(leap:(dy hen our def dug) tea q.hin)
|
||||
[-.res ..^$(our +<.res, dug +>+.res, def +>-.res)]
|
||||
--
|
||||
|
@ -28,11 +28,6 @@
|
||||
++ note :: out request $->
|
||||
$% $: %a :: to %ames
|
||||
$% [%want p=sock q=path r=*] ::
|
||||
== == ::
|
||||
$: %b :: to %batz
|
||||
$% [%hail ~] ::
|
||||
[%line p=@t] ::
|
||||
[%ling ~] ::
|
||||
== == ::
|
||||
$: %c :: to %clay
|
||||
$% [%warp p=sock q=riff] ::
|
||||
|
@ -804,8 +804,7 @@
|
||||
|= [cof=cafe vax=vase gen=twig]
|
||||
=+ puz=(mule |.((~(mint ut p.vax) [%noun gen])))
|
||||
?- -.puz
|
||||
| ~& [%maim-fail p.puz]
|
||||
(flaw cof p.puz)
|
||||
| (flaw cof p.puz)
|
||||
& %+ (coup cof) (mock [q.vax q.p.puz] (mole ska))
|
||||
|= val=*
|
||||
`vase`[p.p.puz val]
|
||||
|
@ -131,10 +131,11 @@
|
||||
$% [%dirt p=twig] ::
|
||||
== ::
|
||||
++ sign :: in result $<-
|
||||
$? [?(%b %c %d %e) @tas *] ::
|
||||
$? [?(%c %d %e %t) @tas *] ::
|
||||
$: %a :: by %ames
|
||||
$% [%woot p=ship q=coop] ::
|
||||
[%went p=ship q=cape] :: XX only for apps
|
||||
$% [%init p=@p] :: only for :begin
|
||||
[%woot p=ship q=coop] ::
|
||||
[%went p=ship q=cape] :: only for apps
|
||||
== == ::
|
||||
$: %g :: by %gall
|
||||
$% [%crud p=@tas q=(list tank)] ::
|
||||
@ -144,6 +145,8 @@
|
||||
[%nice ~] ::
|
||||
[%rush p=mark q=*] ::
|
||||
[%rust p=mark q=*] ::
|
||||
[%sage p=path q=*] ::
|
||||
[%verb ~] ::
|
||||
[%veer p=@ta q=path r=@t] ::
|
||||
[%vega p=path] ::
|
||||
== == ::
|
||||
@ -342,7 +345,7 @@
|
||||
:- %meta
|
||||
^- vase
|
||||
:- :+ %cell [%cube sem %atom %tas]
|
||||
[%cell [%atom %tas] p.q.cay]
|
||||
[%cell [%cube p.cay %atom %tas] p.q.cay]
|
||||
[sem p.cay q.q.cay]
|
||||
::
|
||||
++ gaff :: take and go
|
||||
@ -358,7 +361,7 @@
|
||||
?> ?=(?(%mess %show %nuke) -.kon)
|
||||
=+ you=`ship`?-(-.kon %mess p.kon, %nuke p.kon, %show p.kon)
|
||||
=+ mat=(~(got by pol.all) you)
|
||||
=+ sad==+(sad=(~(get by sap.mat) our) ?^(sad u.sad *scad))
|
||||
=+ sad==+(sad=(~(get by sap.mat) our) ?^(sad u.sad [.(p 1)]:*scad))
|
||||
=^ num sad
|
||||
=+ nym=(~(get by q.sad) hen)
|
||||
?^ nym [u.nym sad]
|
||||
@ -424,15 +427,16 @@
|
||||
=+ rod=|=(ron=roon `note`[%a %wont [our you] [%q %gh imp] num ron])
|
||||
?+ -.pax !!
|
||||
%m ?: ?=(%a -.sih) ~
|
||||
:_ ~ :- hen
|
||||
?+ -.sih ~& [%gall-gave-m -.sih] !!
|
||||
%f
|
||||
:_ ~ :- hen
|
||||
?- -.p.+.sih
|
||||
%| [%give %mean ~ %ford-fail p.p.+.sih]
|
||||
%& [%pass [%r pax] %g %mess [our imp] you `cage`q.p.p.+.sih]
|
||||
==
|
||||
::
|
||||
%g
|
||||
:_ ~ :- hen
|
||||
?- -.+.sih
|
||||
%crud !!
|
||||
%dumb !!
|
||||
@ -441,6 +445,8 @@
|
||||
%nice [%give %nice ~]
|
||||
%rush !!
|
||||
%rust !!
|
||||
%sage !!
|
||||
%verb !!
|
||||
%veer !!
|
||||
%vega !!
|
||||
==
|
||||
@ -457,6 +463,8 @@
|
||||
%nice [%give %nice ~]
|
||||
%rush [%pass [%r pax] (rod %d p.+.sih q.+.sih)]
|
||||
%rust [%pass [%r pax] (rod %f p.+.sih q.+.sih)]
|
||||
%sage !!
|
||||
%verb !!
|
||||
%veer !!
|
||||
%vega !!
|
||||
==
|
||||
@ -467,6 +475,7 @@
|
||||
++ gawd :: %r handle response
|
||||
|= [hen=duct saq=sack imp=path num=@ud ron=roon]
|
||||
^- [p=(list move) q=_..^$]
|
||||
?: =(0 num) ~& %shouldnt-get-zero `..^$
|
||||
=+ mat=(~(got by pol.all) p.saq)
|
||||
=+ sad=(~(got by sap.mat) q.saq)
|
||||
=+ neh=(~(got by r.sad) num)
|
||||
|
@ -9882,7 +9882,6 @@
|
||||
?+ hap !!
|
||||
[@ %ames *] %a
|
||||
[@ %newt *] %a
|
||||
[@ %batz *] %b
|
||||
[@ %sync *] %c
|
||||
[@ %term *] %d
|
||||
[@ %http *] %e
|
||||
|
43
main/app/began/core.hook
Normal file
43
main/app/began/core.hook
Normal file
@ -0,0 +1,43 @@
|
||||
/- begin-args
|
||||
::
|
||||
|%
|
||||
++ sign
|
||||
$% $: %a
|
||||
$% [%went p=ship q=cape]
|
||||
[%init p=@p]
|
||||
== == ==
|
||||
++ began-args ,[his=@p tic=@p eny=@t ges=gens]
|
||||
--
|
||||
::
|
||||
!:
|
||||
|_ [hid=hide %0 ust=bone his=@p mac=mace]
|
||||
++ poke-began-args
|
||||
|= [ost=bone you=ship began-args]
|
||||
=+ bur=(shax :(mix (jam ges) eny))
|
||||
=+ loy=(bruw 2.048 bur)
|
||||
:_ +>.$(ust ost, his his, mac [0 sec:ex:loy]~)
|
||||
:~ :* ost %pass /ticketing %a %want [our.hid (sein his)] /q/ta
|
||||
his tic ges pub:ex:loy
|
||||
==
|
||||
==
|
||||
::
|
||||
++ poke-will
|
||||
|= [ost=bone you=ship wil=will]
|
||||
:_ +>.$ :_ ~
|
||||
[ust %pass / %a %cash his mac wil]
|
||||
::
|
||||
++ pour
|
||||
|= [ost=bone pax=path sih=*]
|
||||
=+ sih=((soft sign) sih) :: seem to get blits
|
||||
?~ sih `+>.$
|
||||
:_ +>.$
|
||||
?- +<.u.sih
|
||||
%init ~
|
||||
%went [ost %give ?:(?=(%good q.u.sih) [%nice ~] [%mean ~ %went-dead ~])]~
|
||||
==
|
||||
::
|
||||
++ peer
|
||||
|=
|
||||
*
|
||||
`+>
|
||||
--
|
535
main/app/begin/core.hook
Normal file
535
main/app/begin/core.hook
Normal file
@ -0,0 +1,535 @@
|
||||
/- begin-args
|
||||
::
|
||||
|%
|
||||
++ sign
|
||||
$% $: %g
|
||||
$% [%nice ~]
|
||||
[%mean p=ares]
|
||||
[%rush %txt p=cord]
|
||||
== == ==
|
||||
++ form ,[his=@p tic=@p eny=@t ges=gens]
|
||||
++ state
|
||||
$? %begin %his %tic %eny %lag
|
||||
%name %form %psect %pname %year
|
||||
%govt %sect %fname %mname %nname
|
||||
%lname %done
|
||||
==
|
||||
--
|
||||
::
|
||||
!:
|
||||
|_ [hid=hide sat=state form]
|
||||
++ done
|
||||
|= ost=bone
|
||||
:_ +>.$
|
||||
:~ :* ost %pass /to-gan %g %mess [our.hid /began] our.hid
|
||||
%began-args !>([his tic eny ges])
|
||||
==
|
||||
==
|
||||
::
|
||||
++ loon
|
||||
%+ cook
|
||||
|= all=(list ,@t)
|
||||
|- ^- @t
|
||||
?~ all %$
|
||||
?~ t.all i.all
|
||||
(cat 3 i.all (cat 3 ' ' $(all t.all)))
|
||||
(most ace (cook |=(a=(list ,@) (rap 3 a)) (plus prn)))
|
||||
::
|
||||
++ next
|
||||
|= txt=cord
|
||||
^- [[[cord prom] (list cord)] _+>.$]
|
||||
?- sat
|
||||
%begin
|
||||
:_ +>.$(sat %his)
|
||||
:- ['Your ship: ~' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
Do you have a ship and a ticket? If not, please ask
|
||||
urbit@urbit.org for one.
|
||||
"""
|
||||
%his
|
||||
=+ her=(rash txt fed:ag)
|
||||
=> .(-.q.ges (clan her))
|
||||
=+ ^= cow
|
||||
|- ^- @ud
|
||||
?- -.q.ges
|
||||
%czar 256
|
||||
%king (mul 255 $(-.q.ges %czar))
|
||||
%duke (mul 65.535 $(-.q.ges %king))
|
||||
%earl (mul (dec (bex 32)) $(-.q.ges %duke))
|
||||
%pawn (sub (bex 128) $(-.q.ges %earl))
|
||||
==
|
||||
=+ ^= ves ^- tape
|
||||
?- -.q.ges
|
||||
%czar "carriers"
|
||||
%king "cruisers"
|
||||
%duke "destroyers"
|
||||
%earl "yachts"
|
||||
%pawn "submarines"
|
||||
==
|
||||
:_ ^+ +>.$ +>.$(his (rash txt fed:ag), sat %tic)
|
||||
:- ['Your ticket: ~' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
Launching {(scow %p her)}, one of {<cow>} Urbit {ves}...
|
||||
|
||||
If I did not build for myself
|
||||
for whom should I build?
|
||||
|
||||
-- Bunting, _Chomei at Toyama_
|
||||
|
||||
Let's configure your identity. Warning - it's nontrivial to
|
||||
change this data once you've sent it to the server. If you enter
|
||||
something wrong, hit ^D to cancel, then run the program again.
|
||||
|
||||
"""
|
||||
::
|
||||
%tic
|
||||
:_ +>.$(tic (rash txt fed:ag), sat %eny)
|
||||
:- ['Entropy: ' %pass]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
Enter a passphrase or other unusual text. You (or your enemies)
|
||||
can regenerate your ship from this entropy.
|
||||
|
||||
"""
|
||||
::
|
||||
%eny
|
||||
:_ +>.$(eny (rash txt (boss 256 (more gon qit))), sat %lag)
|
||||
:- ['Language: ' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
What language would your ship rather speak? Enter it as a
|
||||
two-letter (ISO 639-1) code, like "en" for English. Whatever
|
||||
language you pick, it'll all be English now, but in future
|
||||
we'll be more sensitive to your needs.
|
||||
|
||||
"""
|
||||
::
|
||||
%lag
|
||||
=+ ^= par
|
||||
%+ sear
|
||||
|= [a=@ b=@]
|
||||
^- (unit ,@ta)
|
||||
=+ c=(cat 3 a b)
|
||||
=+(d=(glon c) ?~(d ~ [~ c]))
|
||||
;~(plug low low)
|
||||
?. ?=(%duke -.q.ges)
|
||||
:_ +>.$(p.ges (rash txt par), sat %name)
|
||||
[['Name: ' %text] ~]
|
||||
:_ +>.$(p.ges (rash txt par), sat %form)
|
||||
:- ['Form: ' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
Please select one of the pre-chosen forms:
|
||||
|
||||
%lady female-identified individual
|
||||
%lord male-identified individual
|
||||
%punk opaque handle
|
||||
%anon totally anonymous
|
||||
|
||||
"""
|
||||
::
|
||||
%name
|
||||
?> ?=(?(%earl %king) -.q.ges)
|
||||
=+ nam=(rash txt (boss 256 (more gon qit)))
|
||||
=+ gos=?-(-.q.ges %earl [%earl nam], %king [%king nam])
|
||||
:_ +>.$(q.ges gos, sat %done)
|
||||
[['' %text] ~]
|
||||
::
|
||||
%form
|
||||
=+ ^= par
|
||||
;~ pose
|
||||
(jest %anon)
|
||||
(jest %lady)
|
||||
(jest %lord)
|
||||
(jest %punk)
|
||||
==
|
||||
=+ fom=(rash txt par)
|
||||
?+ fom !!
|
||||
%anon [[['' %text] ~] +>.$(q.ges [%duke %anon ~], sat %done)]
|
||||
%punk
|
||||
:_ +>.$(q.ges [%duke %punk *sect ''], sat %pname)
|
||||
[['Handle: ' %text] ~]
|
||||
?(%lady %lord)
|
||||
=+ wat=?-(fom %lady [%lady *whom], %lord [%lord *whom])
|
||||
:_ +>.$(q.ges `gcos`[%duke wat], sat %year)
|
||||
:- ['Year you were born: ' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
You've selected a personal identity. For a %lord or a %lady,
|
||||
please use your real name only. If you'd prefer a fictitious
|
||||
handle, you can hit ^D and start over as a %punk. Or you can
|
||||
use %anon and go by your ship name alone.
|
||||
|
||||
As a real person, we're going to ask you for a little bit of
|
||||
personal information - not enough to compromise your privacy,
|
||||
just enough to make everyone on Urbit feel like a neighbor.
|
||||
|
||||
What we're going to ask you for is information that's (a)
|
||||
public (would be obvious, or at least easy to guess, for
|
||||
someone who met you in person); (b) durable (doesn't change
|
||||
often); and (c) relevant (helps you connect with friends).
|
||||
|
||||
For example, we'll ask for the year (not day) you were born,
|
||||
because your age is easy to guess in person, doesn't change,
|
||||
and has a big effect on how people perceive you.
|
||||
|
||||
"""
|
||||
==
|
||||
::
|
||||
%pname
|
||||
:_ +>.$(q.ges [%duke %punk *sect (rash txt loon)], sat %psect)
|
||||
:- ['Banner: %' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
One basic human instinct is the urge to form political tribes.
|
||||
In a network that fights this need, these tribes form anyway and
|
||||
they form badly. Urbit designs them into the infrastructure.
|
||||
Inspired by the Qing Dynasty, you'll align yourself with one of
|
||||
five colored "banners" - %red, %blue, %orange, %black or %white.
|
||||
|
||||
Political discourse across tribal boundaries is almost always an
|
||||
antisocial act - less communication, than symbolic violence. In
|
||||
Urbit, messages marked political stay within your own banner;
|
||||
your friends in other banners simply won't see them. Between
|
||||
banners, politics doesn't erode apolitical relationships; inside
|
||||
each banner, political discourse is harmonious and productive.
|
||||
|
||||
Pick a banner by the adjective you feel best describes you:
|
||||
|
||||
%red far left: radical, anarchist
|
||||
%blue center-left: moderate, liberal
|
||||
%orange center-right: conservative, libertarian
|
||||
%black far right: traditionalist, reactionary
|
||||
|
||||
Or if digital agitation isn't your cup of tea, choose %white, and
|
||||
your Urbit experience will remain politics-free.
|
||||
|
||||
"""
|
||||
::
|
||||
%psect
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(%punk -.p.q.ges)
|
||||
=+ ^= par
|
||||
;~ pose
|
||||
(jest %white)
|
||||
(jest %blue)
|
||||
(jest %red)
|
||||
(jest %black)
|
||||
(jest %orange)
|
||||
==
|
||||
:- [['' %text] ~]
|
||||
%= +>.$
|
||||
q.ges [%duke %punk ((hard sect) (rash txt par)) q.p.q.ges]
|
||||
sat %done
|
||||
==
|
||||
::
|
||||
%year
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lord %lady) -.p.q.ges)
|
||||
=+ woh=`whom`[(rash txt dim:ag) *govt *sect *name]
|
||||
=+ wat=`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
:_ +>.$(q.ges [%duke wat], sat %govt)
|
||||
:- ['Location (e.g. us/94103):' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
Where are you? This is totally optional, but we'd like to
|
||||
know your vague general location. You can enter nothing at
|
||||
all, just a country code, or country and postal code.
|
||||
|
||||
"""
|
||||
::
|
||||
%govt
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lord %lady) -.p.q.ges)
|
||||
=+ ^= par
|
||||
;~ pose
|
||||
;~ plug (cook |=([a=@ b=@] (cat 3 a b)) ;~(plug low low))
|
||||
;~ pfix fas
|
||||
%+ cook
|
||||
|=(a=tape (rap 3 ^-((list ,@) a)))
|
||||
(star ;~(pose hig hep nud))
|
||||
==
|
||||
(easy ~)
|
||||
==
|
||||
==
|
||||
=+ woh=`whom`[p.p.p.q.ges (rash txt par) *sect *name]
|
||||
=+ wat=`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
:_ +>.$(q.ges [%duke wat], sat %sect)
|
||||
:- ['Banner: %' %text]
|
||||
%- lore %- crip
|
||||
"""
|
||||
|
||||
One basic human instinct is the urge to form political tribes.
|
||||
In a network that fights this need, these tribes form anyway and
|
||||
they form badly. Urbit designs them into the infrastructure.
|
||||
Inspired by the Qing Dynasty, you'll align yourself with one of
|
||||
five colored "banners" - %red, %blue, %orange, %black or %white.
|
||||
|
||||
Political discourse across tribal boundaries is almost always an
|
||||
antisocial act - less communication, than symbolic violence. In
|
||||
Urbit, messages marked political stay within your own banner;
|
||||
your friends in other banners simply won't see them. Between
|
||||
banners, politics doesn't erode apolitical relationships; inside
|
||||
each banner, political discourse is harmonious and productive.
|
||||
|
||||
Pick a banner by the adjective you feel best describes you:
|
||||
|
||||
%red far left: radical, anarchist
|
||||
%blue center-left: moderate, liberal
|
||||
%orange center-right: conservative, libertarian
|
||||
%black far right: traditionalist, reactionary
|
||||
|
||||
Or if digital agitation isn't your cup of tea, choose %white, and
|
||||
your Urbit experience will remain politics-free.
|
||||
|
||||
"""
|
||||
::
|
||||
%sect
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lord %lady) -.p.q.ges)
|
||||
=+ ^= par
|
||||
;~ pose
|
||||
(jest %white)
|
||||
(jest %blue)
|
||||
(jest %red)
|
||||
(jest %black)
|
||||
(jest %orange)
|
||||
==
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges (sect (rash txt par)) *name]
|
||||
=+ wat=`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
:_ +>.$(q.ges [%duke wat], sat %fname)
|
||||
[['First name: ' %text] ~]
|
||||
::
|
||||
%fname
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lord %lady) -.p.q.ges)
|
||||
=+ nam=[(rash txt loon) *(unit ,@t) *(unit ,@t) *@t]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nam]
|
||||
=+ wat=`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
:_ +>.$(q.ges [%duke wat], sat %mname)
|
||||
[['Middle name (or blank): ' %text] ~]
|
||||
::
|
||||
%mname
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lord %lady) -.p.q.ges)
|
||||
=+ uni=(rash txt ;~(pose (stag ~ loon) (easy ~)))
|
||||
=+ nam=[p.s.p.p.q.ges uni *(unit ,@t) *@t]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nam]
|
||||
=+ wat=`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
:_ +>.$(q.ges [%duke wat], sat %nname)
|
||||
[['Nickname/handle (or blank): ' %text] ~]
|
||||
::
|
||||
%nname
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lord %lady) -.p.q.ges)
|
||||
=+ uni=(rash txt ;~(pose (stag ~ loon) (easy ~)))
|
||||
=+ nam=[p.s.p.p.q.ges q.s.p.p.q.ges uni *@t]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nam]
|
||||
=+ wat=`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
:_ +>.$(q.ges [%duke wat], sat %lname)
|
||||
[['Last name: ' %text] ~]
|
||||
::
|
||||
%lname
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lord %lady) -.p.q.ges)
|
||||
=+ nam=[p.s.p.p.q.ges q.s.p.p.q.ges r.s.p.p.q.ges (rash txt loon)]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nam]
|
||||
=+ wat=`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
:_ +>.$(q.ges [%duke wat], sat %done)
|
||||
[['' %text] ~]
|
||||
::
|
||||
%done !!
|
||||
==
|
||||
::
|
||||
++ poke-begin-args
|
||||
|= [ost=bone you=ship arg=(list)]
|
||||
=^ sot +>.$
|
||||
?~ arg [%begin +>.$]
|
||||
=+ ((soft ,@p) i.arg)
|
||||
?~ - [%begin +>.$]
|
||||
=. his u.-
|
||||
?~ t.arg [%his +>.$]
|
||||
=+ ((soft ,@p) i.t.arg)
|
||||
?~ - [%his +>.$]
|
||||
=. tic u.-
|
||||
?~ t.t.arg [%tic +>.$]
|
||||
=+ ((soft ,@t) i.t.t.arg)
|
||||
?~ - [%tic +>.$]
|
||||
=. eny u.-
|
||||
?~ t.t.t.arg [%eny +>.$]
|
||||
=+ ((soft lang) i.t.t.t.arg)
|
||||
?~ - [%eny +>.$]
|
||||
?~ (glon u.-) [%eny +>.$]
|
||||
=. p.ges u.-
|
||||
=+ ran=(clan his)
|
||||
=* sec t.t.t.t.arg
|
||||
?~ sec [%lag +>.$]
|
||||
?- ran
|
||||
?(%czar %pawn) %begin
|
||||
?(%king %earl)
|
||||
=+ ((soft ,@t) i.sec)
|
||||
?~ - [%lag +>.$]
|
||||
=. q.ges
|
||||
?- ran
|
||||
%king [%king u.-]
|
||||
%earl [%earl u.-]
|
||||
==
|
||||
[%done +>.$]
|
||||
::
|
||||
%duke
|
||||
=+ ((soft ?(%anon %lady %lord %punk)) i.sec)
|
||||
?~ - [%lag +>.$]
|
||||
?- u.-
|
||||
%anon
|
||||
=. q.ges [%duke %anon ~]
|
||||
[%done +>.$]
|
||||
::
|
||||
%punk
|
||||
?~ t.sec [%form +>.$]
|
||||
=+ ((soft ,@t) i.t.sec)
|
||||
?~ - [%form +>.$]
|
||||
=. q.ges [%duke %punk *sect u.-]
|
||||
?~ t.t.sec [%pname +>.$]
|
||||
=+ ((soft sect) i.t.t.sec)
|
||||
?~ - [%pname +>.$]
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(%punk -.p.q.ges)
|
||||
=. q.ges [%duke %punk u.- q.p.q.ges]
|
||||
[%done +>.$]
|
||||
::
|
||||
?(%lady %lord)
|
||||
=. q.ges
|
||||
^- gcos
|
||||
:- %duke
|
||||
?- u.-
|
||||
%lady [%lady *whom]
|
||||
%lord [%lord *whom]
|
||||
==
|
||||
?~ t.sec [%form +>.$]
|
||||
=+ ((soft ,@ud) i.t.sec)
|
||||
?~ - [%form +>.$]
|
||||
=+ ^= wat
|
||||
=+ woh=`whom`[u.- *govt *sect *name]
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lady %lord) -.p.q.ges)
|
||||
`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
=. q.ges `gcos`[%duke wat]
|
||||
?~ t.t.sec [%year +>.$]
|
||||
=+ ((soft govt) i.t.t.sec)
|
||||
?~ - [%year +>.$]
|
||||
=+ ^= wat
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lady %lord) -.p.q.ges)
|
||||
=+ woh=`whom`[p.p.p.q.ges u.- *sect *name]
|
||||
`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
=. q.ges [%duke wat]
|
||||
?~ t.t.t.sec [%govt +>.$]
|
||||
=+ ((soft sect) i.t.t.t.sec)
|
||||
?~ - [%govt +>.$]
|
||||
=+ ^= wat
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lady %lord) -.p.q.ges)
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges u.- *name]
|
||||
`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
=. q.ges [%duke wat]
|
||||
=+ nam=((hard (list)) |8.arg)
|
||||
?~ nam [%sect +>.$]
|
||||
=+ ((soft ,@t) i.nam)
|
||||
?~ - [%sect +>.$]
|
||||
=+ ^= wat
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lady %lord) -.p.q.ges)
|
||||
=+ nym=`name`[u.- *(unit ,@t) *(unit ,@t) *@t]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nym]
|
||||
`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
~! nama=nam
|
||||
=. q.ges `gcos`[%duke wat]
|
||||
~! namb=nam
|
||||
?~ t.nam [%fname +>.$]
|
||||
=+ ((soft (unit ,@t)) i.t.nam)
|
||||
?~ - [%fname +>.$]
|
||||
=+ ^= wat
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lady %lord) -.p.q.ges)
|
||||
=+ nym=[p.s.p.p.q.ges u.- *(unit ,@t) *@t]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nym]
|
||||
`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
=. q.ges [%duke wat]
|
||||
?~ t.t.nam [%mname +>.$]
|
||||
=+ ((soft (unit ,@t)) i.t.t.nam)
|
||||
?~ - [%mname +>.$]
|
||||
=+ ^= wat
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lady %lord) -.p.q.ges)
|
||||
=+ nym=[p.s.p.p.q.ges q.s.p.p.q.ges u.- *@t]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nym]
|
||||
`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
=. q.ges [%duke wat]
|
||||
?~ t.t.t.nam [%nname +>.$]
|
||||
=+ ((soft ,@t) i.t.t.t.nam)
|
||||
?~ - [%nname +>.$]
|
||||
=+ ^= wat
|
||||
?> ?=(%duke -.q.ges)
|
||||
?> ?=(?(%lady %lord) -.p.q.ges)
|
||||
=+ nym=[p.s.p.p.q.ges q.s.p.p.q.ges r.s.p.p.q.ges u.-]
|
||||
=+ woh=`whom`[p.p.p.q.ges q.p.p.q.ges r.p.p.q.ges nym]
|
||||
`what`?-(-.p.q.ges %lord [%lord woh], %lady [%lady woh])
|
||||
=. q.ges [%duke wat]
|
||||
[%done +>.$]
|
||||
==
|
||||
==
|
||||
=^ res +>.$
|
||||
^- [[pot=[cord prom] tak=(list cord)] _+>.$]
|
||||
(next(sat sot) '')
|
||||
:_ +>.$
|
||||
%+ welp
|
||||
:~ [ost %pass /in %g %show [our.hid +.imp.hid] you /in/[-.imp.hid]]
|
||||
[ost %give %nice ~]
|
||||
==
|
||||
%+ welp
|
||||
(spam %rush %prompt pot.res)
|
||||
%- zing
|
||||
(turn (flop tak.res) |=(a=cord (spam %rush %txt a)))
|
||||
::
|
||||
++ pour
|
||||
|= [ost=bone pax=path sih=*]
|
||||
=+ sih=((hard sign) sih)
|
||||
?: ?=([%in ~] pax)
|
||||
?. ?=(%rush +<.sih) `+>.$
|
||||
=^ res +>.$
|
||||
^- [[pot=[cord prom] tak=(list cord)] _+>.$]
|
||||
(next p.sih)
|
||||
?: ?=(%done sat)
|
||||
(done ost)
|
||||
:_ +>.$
|
||||
%+ welp (spam %rush %prompt pot.res)
|
||||
%- zing
|
||||
(turn (flop tak.res) |=(a=cord (spam %rush %txt a)))
|
||||
:_ +>.$
|
||||
:- [ost %give +.sih]
|
||||
%+ turn (~(tap by sup.hid))
|
||||
|= [ost=bone *]
|
||||
:^ ost %give %rush
|
||||
:- %tang :_ ~
|
||||
[%leaf ?:(?=(%nice +<.sih) "begin successful" "begin failed")]
|
||||
::
|
||||
++ peer
|
||||
|=
|
||||
*
|
||||
`+>
|
||||
::
|
||||
++ spam
|
||||
|* git=*
|
||||
%+ turn
|
||||
(~(tap in (~(get ju pus.hid) /out)))
|
||||
|=(a=bone [a %give git])
|
||||
--
|
@ -29,6 +29,7 @@
|
||||
%nice
|
||||
[ost %give %nice ~]~
|
||||
%rush
|
||||
%+ weld (spam %rush %prompt 'searching for {<arg>}...')
|
||||
%- spam
|
||||
?- &3.sih
|
||||
%txt
|
||||
|
@ -9,11 +9,22 @@
|
||||
:::: structures
|
||||
::
|
||||
|% ::
|
||||
++ axle ::
|
||||
$: pid=@u :: next process id
|
||||
pax=_`path`/=try= :: working directory
|
||||
act=(unit span) :: active child
|
||||
pip=(map span span) :: pipe out->in
|
||||
pop=(map span span) :: pipe in->out
|
||||
pot=(map span ,[cord prom]) :: prompts
|
||||
var=(map term vase) :: variables
|
||||
== ::
|
||||
++ gift ::
|
||||
$% [%rush p=gilt] ::
|
||||
[%mean p=ares] ::
|
||||
[%nice ~] ::
|
||||
[%meta p=vase] ::
|
||||
[%sage p=path q=*] ::
|
||||
[%verb ~] ::
|
||||
[%veer p=@ta q=path r=@t] ::
|
||||
[%vega p=path] ::
|
||||
== ::
|
||||
@ -21,6 +32,7 @@
|
||||
$% [%term-line p=term-line] ::
|
||||
[%txt p=cord] ::
|
||||
== ::
|
||||
++ glas $|(%out [%in p=cord]) ::
|
||||
++ hapt ,[p=ship q=path] ::
|
||||
++ move ,[p=bone q=(mold note gift)] ::
|
||||
++ note ::
|
||||
@ -54,6 +66,8 @@
|
||||
[%nice ~] ::
|
||||
[%rush p=mark q=*] ::
|
||||
[%rust p=mark q=*] ::
|
||||
[%sage p=path q=*] ::
|
||||
[%verb ~] ::
|
||||
[%veer p=@ta q=path r=@t] ::
|
||||
[%vega p=path] ::
|
||||
== == == ::
|
||||
@ -87,7 +101,7 @@
|
||||
^- $+(nail (like coma))
|
||||
=+ paf=pax
|
||||
=. pax ?.(&(?=([@ @ @ *] pax) =('0' &3.pax)) pax pax(&3 (scot da/lat)))
|
||||
%+ ifix [(star ace) (star ace)]
|
||||
%+ ifix [(star ace) gaw]
|
||||
;~ pose
|
||||
(stag %run ;~(plug (star ;~(sfix (task(tol %0) bar) ace)) (task col)))
|
||||
(stag %end ;~(pfix col sem ;~(pose (stag %& dem) (stag %| sym))))
|
||||
@ -117,261 +131,332 @@
|
||||
--
|
||||
--
|
||||
!:
|
||||
:::: program
|
||||
:::: per event
|
||||
::
|
||||
|_ $: hid=hide
|
||||
pid=@u
|
||||
pax=_`path`/=try=
|
||||
act=(unit span)
|
||||
pip=(map span span)
|
||||
pop=(map span span)
|
||||
var=(map term vase)
|
||||
==
|
||||
::
|
||||
++ peer :: handle subscription
|
||||
|= [ost=bone you=ship pax=path]
|
||||
^- [(list move) _+>]
|
||||
?~ pax `+>.$
|
||||
?+ i.pax `+>.$
|
||||
%in :: to app
|
||||
?~ t.pax `+>.$
|
||||
?. (~(has by cub.hid) i.t.pax) `+>.$
|
||||
?: (~(has by pop) i.t.pax) `+>.$
|
||||
:_ +>.$(act `i.t.pax)
|
||||
(print ost you ~)
|
||||
%out :: to terminal
|
||||
?> ?=(~ t.pax)
|
||||
:_ +>.$
|
||||
[ost %give %rush %term-line `term-line`[prompt ~ ~]]~
|
||||
==
|
||||
::
|
||||
++ cubs :: tasks with open /in
|
||||
%- sort :_ |=([a=span b=span] (lth (slav %ud a) (slav %ud b)))
|
||||
^- (list span)
|
||||
%+ murn (~(tap by sup.hid))
|
||||
|= [@ @ a=path]
|
||||
?. ?& ?=([%in cord ~] a)
|
||||
(~(has by cub.hid) i.t.a)
|
||||
!(~(has by pop) i.t.a)
|
||||
==
|
||||
~
|
||||
(some i.t.a)
|
||||
::
|
||||
++ next-act :: rotate active task
|
||||
=+ opt=[i=`(unit span)`~ t=(turn cubs |=(a=span `(unit span)`[~ a]))]
|
||||
|-
|
||||
?~ t.opt ~
|
||||
?: =(act i.opt)
|
||||
i.t.opt
|
||||
$(opt t.opt)
|
||||
::
|
||||
++ poke-kyev :: handle key event
|
||||
|= [ost=bone you=ship key=kyev]
|
||||
^- [(list move) _+>]
|
||||
?: ?=([~ @] key) (poke-txt ost you q.key) :: simple keypress
|
||||
?> ?=([[%ctrl ~ ~] @t] key)
|
||||
?+ q.key
|
||||
:_ +>.$
|
||||
:- [ost %give %nice ~]
|
||||
(print ost you leaf/"no command \\{(trip q.key)}" ~)
|
||||
%x =. act next-act
|
||||
:_ +>.$
|
||||
:- [ost %give %nice ~]
|
||||
(print ost you ~)
|
||||
%l =+ =- tak=rose/[" " "[" "]"]^(turn cubs -)
|
||||
|= a=span
|
||||
leaf/(trip (rap 3 (~(got by cub.hid) a) '(' a ')' ~))
|
||||
[[[ost give/nice/~] (print ost you tak ~)] +>.$]
|
||||
==
|
||||
::
|
||||
++ poke-txt :: handle command
|
||||
|= [ost=bone you=ship txt=cord]
|
||||
^- [(list move) _+>]
|
||||
?: =('\\' (end 3 1 txt)) :: escaped ctrl-key
|
||||
(poke-kyev ost you [%ctrl ~ ~] (rsh 3 1 txt))
|
||||
?^ act :: pipe to child
|
||||
:_ +>.$
|
||||
:- [ost %give %nice ~]
|
||||
(spam /in/[u.act] %rush %txt txt)
|
||||
|%
|
||||
++ ve
|
||||
|= [hid=hide ost=bone axle]
|
||||
=* vat +<+>
|
||||
=| mow=(list move)
|
||||
|%
|
||||
++ abet
|
||||
^- [(list move) axle]
|
||||
[(flop mow) vat]
|
||||
::
|
||||
=- :_ con
|
||||
%+ welp (stash:con ost you txt)
|
||||
?~ tak
|
||||
mof
|
||||
%+ welp
|
||||
(print:con ost you tak ~)
|
||||
[[ost %give %nice ~] mof]
|
||||
^- [con=_+>.$ tak=$|(~ tank) mof=(list move)]
|
||||
=+ pas=((full ~(parse from pax lat.hid)) [1 1] (trip txt))
|
||||
?~ q.pas
|
||||
[+>.$ leaf/"<syntax error at {<`[@ @]`p.pas>}>" ~]
|
||||
=+ com=(wonk pas)
|
||||
^- [con=_+>.$ tak=$|(~ tank) mof=(list move)]
|
||||
?- -.com
|
||||
%path
|
||||
=. pax p.com
|
||||
[+>.$ leaf/"=% {(spud p.com)}" ~]
|
||||
++ blab
|
||||
|= mof=(list move)
|
||||
+>.$(mow (welp mof mow))
|
||||
::
|
||||
?(%ins %mut %del)
|
||||
:- +>.$
|
||||
=+ paf=[.(&3 '=')]:?+(-.com p.com %del p.com)
|
||||
=- :- palm/[" " ~ ~ ~]^~[leaf/msg (dank:ut paf)]
|
||||
(turn (drop tor) |=(a=toro [ost %pass writ/paf %c %info our.hid a]))
|
||||
^- [msg=tape tor=(unit toro)]
|
||||
|-
|
||||
?- -.com
|
||||
%ins
|
||||
?^ (file p.com) ["! exists" ~]
|
||||
["written" `(foal p.com q:(exec (fall q.com [%bczp atom/%t])))]
|
||||
%mut
|
||||
?~ (file p.com) $(com [%del p.com])
|
||||
["changed" `(foal p.com q:(exec q.com))]
|
||||
%del
|
||||
?~ (file p.com) ["! none" ~]
|
||||
["written" `(fray p.com)]
|
||||
++ chew-file
|
||||
|= [paf=path msg=tape tor=(unit toro)]
|
||||
^- (list move)
|
||||
%+ welp
|
||||
(print palm/[" " ~ ~ ~]^~[leaf/msg (dank:ut paf)])
|
||||
%+ turn (drop tor)
|
||||
|=(a=toro [ost %pass writ/paf %c %info our.hid a])
|
||||
::
|
||||
++ cubs :: tasks with open /in
|
||||
%- sort :_ |=([a=span b=span] (lth (slav %ud a) (slav %ud b)))
|
||||
^- (list span)
|
||||
%+ murn (~(tap by sup.hid))
|
||||
|= [@ @ a=path]
|
||||
?. ?& ?=([%in cord ~] a)
|
||||
(~(has by cub.hid) i.t.a)
|
||||
!(~(has by pop) i.t.a)
|
||||
==
|
||||
~
|
||||
(some i.t.a)
|
||||
::
|
||||
++ eat
|
||||
|= [you=ship com=coma]
|
||||
?- -.com
|
||||
%comt +>.$
|
||||
%del (eat-del +.com)
|
||||
%end (eat-end +.com)
|
||||
%hoon (eat-hoon +.com)
|
||||
%ins (eat-ins +.com)
|
||||
%mut (eat-mut +.com)
|
||||
%path (eat-path +.com)
|
||||
%run (eat-run you +.com)
|
||||
%rvar (eat-rvar +.com)
|
||||
%var (eat-var +.com)
|
||||
==
|
||||
::
|
||||
%run
|
||||
=+ mof=(print ost you leaf/"+ :{(trip p.q.com)}" ~)
|
||||
++ eat-del
|
||||
|= paf=path
|
||||
^+ +>
|
||||
=. &3.paf '='
|
||||
%- blab
|
||||
%+ chew-file paf
|
||||
?^ (file paf) ["! none" ~]
|
||||
["deleted" `(fray paf)]
|
||||
::
|
||||
++ eat-end :: XX clean up state
|
||||
|= poc=(each ,@u cord)
|
||||
^+ +>
|
||||
?- -.poc
|
||||
%&
|
||||
=+ cil=(scot %ud p.poc)
|
||||
=+ cin=(trip (~(got by cub.hid) cil))
|
||||
%+ blab
|
||||
[ost %pass /child/[cil]/fork %g %cide cil]
|
||||
(print leaf/"- :{cin}({(trip cil)})")
|
||||
::
|
||||
%|
|
||||
=+ ^- moz=(list move)
|
||||
%+ murn (~(tap by cub.hid))
|
||||
|= [a=span b=term]
|
||||
?. =(b p.poc) ~
|
||||
%- some
|
||||
[ost %pass /child/[a]/fork %g %cide a]
|
||||
%- blab %+ welp moz
|
||||
(print leaf/"-{<(lent moz)>} :{(trip p.poc)}")
|
||||
==
|
||||
::
|
||||
++ eat-hoon
|
||||
|= gen=twig
|
||||
^+ +>
|
||||
(blab (print (sell (exec gen))))
|
||||
::
|
||||
++ eat-ins
|
||||
|= [paf=path gen=(unit twig)]
|
||||
^+ +>
|
||||
=. &3.paf '='
|
||||
%- blab
|
||||
%+ chew-file paf
|
||||
?^ (file paf) ["! exists" ~]
|
||||
:- "written"
|
||||
`(foal paf q:(exec (fall gen [%bczp atom/%t])))
|
||||
::
|
||||
++ eat-mut
|
||||
|= [paf=path gen=twig]
|
||||
^+ +>
|
||||
=. &3.paf '='
|
||||
%- blab
|
||||
%+ chew-file paf
|
||||
?^ (file paf) ["! none" ~]
|
||||
["changed" `(foal paf q:(exec gen))]
|
||||
::
|
||||
++ eat-path
|
||||
|= paf=path
|
||||
^+ +>
|
||||
=. pax paf
|
||||
(blab (print leaf/"=% {(spud paf)}"))
|
||||
::
|
||||
++ eat-run
|
||||
|= [you=ship mud=(list mand) mad=mand]
|
||||
^+ +>
|
||||
:: =. +>.$ (blab (print leaf/"+ :{(trip p.mad)}"))
|
||||
=| inp=(unit span)
|
||||
=< [+>.$ ~ mof]
|
||||
=< +>.$
|
||||
%+ reel
|
||||
`(list mand)`(welp p.com q.com ~)
|
||||
`(list mand)`(welp mud mad ~)
|
||||
=+ a=[app=*mand .]
|
||||
|.
|
||||
=> a
|
||||
=+ cil=(scot %ud pid)
|
||||
::~& [%pipsqueak <inp> <app>]
|
||||
%_ +>
|
||||
%_ +>
|
||||
pid +(pid)
|
||||
pip ?~ inp pip (~(put by pip) cil u.inp)
|
||||
pop ?~ inp pop (~(put by pop) u.inp cil)
|
||||
inp `cil
|
||||
mof
|
||||
mow
|
||||
=+ yon=[our.hid cil imp.hid]
|
||||
=+ mez=[(cat 3 p.app '-args') (exec [%clsg q.app])]
|
||||
=- (weld (flop -) mof) :: XX strange order
|
||||
%- welp :_ mow
|
||||
^- (list move)
|
||||
:~ [ost %pass /child/[cil] %g %sire p.app cil]
|
||||
:~ [ost %pass /child/[cil]/fork %g %sire p.app cil]
|
||||
[ost %pass /child/[cil]/out %g %show yon you /out]
|
||||
[ost %pass /child/[cil]/main %g %meta !>([%mess yon you mez])]
|
||||
==
|
||||
==
|
||||
::
|
||||
%end
|
||||
?: ?=(%& -.p.com)
|
||||
=+ cil=(scot %ud p.p.com)
|
||||
=+ cin=(trip (~(got by cub.hid) cil))
|
||||
:- +>.$ :- ~
|
||||
:_ (print ost you leaf/"- :{cin}({(trip cil)})" ~)
|
||||
[ost %pass /child/[cil] %g %cide cil]
|
||||
=* cil p.p.com
|
||||
=- [+>.$ leaf/"-{<(lent moz)>} :{(trip cil)}" moz]
|
||||
^= moz
|
||||
%+ murn (~(tap by cub.hid)) |= [a=span b=term]
|
||||
?. =(b cil) ~
|
||||
%- some
|
||||
[ost %pass /child/[a] %g %cide a]
|
||||
++ eat-rvar
|
||||
|= vor=term
|
||||
^+ +>
|
||||
=+ mod=(~(has by var) vor)
|
||||
=. var (~(del by var) vor)
|
||||
(blab (print leaf/"{?:(mod "var gone" "no var")} {<vor>}"))
|
||||
::
|
||||
%var
|
||||
=+ old=(~(get by var) p.com)
|
||||
=+ new=(exec q.com)
|
||||
++ eat-var
|
||||
|= [vor=term gen=twig]
|
||||
^+ +>
|
||||
=+ old=(~(get by var) vor)
|
||||
=+ new=(exec gen)
|
||||
=+ mod=?~(old "new var" ?:(=(new u.old) "same var" "changed"))
|
||||
=. var (~(put by var) p.com new)
|
||||
[+>.$ leaf/"{mod} {<p.com>}" ~]
|
||||
=. var (~(put by var) vor new)
|
||||
(blab (print leaf/"{mod} {<vor>}"))
|
||||
::
|
||||
%rvar
|
||||
=+ mod=(~(has by var) p.com)
|
||||
=. var (~(del by var) p.com)
|
||||
[+>.$ leaf/"{?:(mod "var gone" "no var")} {<p.com>}" ~]
|
||||
++ exec
|
||||
|= gen=twig
|
||||
%- slap :_ gen
|
||||
%+ roll (~(tap by var))
|
||||
=< .(q pit)
|
||||
|= [[n=term v=vase] q=vase]
|
||||
(slop [[%face n p.v] q.v] q)
|
||||
::
|
||||
%hoon
|
||||
[+>.$ (sell (exec p.com)) ~]
|
||||
|
||||
++ next-act :: rotate active task
|
||||
=+ opt=[i=`(unit span)`~ t=(turn cubs |=(a=span `(unit span)`[~ a]))]
|
||||
|-
|
||||
?~ t.opt ~
|
||||
?: =(act i.opt)
|
||||
i.t.opt
|
||||
$(opt t.opt)
|
||||
::
|
||||
%comt
|
||||
[+>.$ ~ ~]
|
||||
==
|
||||
++ peer
|
||||
|= [you=ship gal=glas]
|
||||
^+ +>
|
||||
?@ gal
|
||||
%_ +>.$
|
||||
mow :_(mow [ost %give %rush %term-line prompt ~ ~])
|
||||
==
|
||||
?. (~(has by cub.hid) p.gal) +>.$
|
||||
?: (~(has by pop) p.gal) +>.$
|
||||
=. act `p.gal
|
||||
(blab ping)
|
||||
::
|
||||
++ ping (print-vase !>(*(list tank)))
|
||||
++ poke-kyev
|
||||
|= [you=ship key=kyev]
|
||||
^+ +>
|
||||
?: ?=([~ @] key) (poke-txt you q.key) :: simple keypress ?
|
||||
?> ?=([[%ctrl ~ ~] @t] key)
|
||||
?+ q.key
|
||||
%+ blab
|
||||
[ost %give %nice ~]
|
||||
(print leaf/"no command \\{(trip q.key)}")
|
||||
%x =. act next-act
|
||||
(blab [ost %give %nice ~] ping)
|
||||
%l =+ =- tak=rose/[" " "[" "]"]^(turn cubs -)
|
||||
|= a=span
|
||||
leaf/(trip (rap 3 (~(got by cub.hid) a) '(' a ')' ~))
|
||||
(blab [ost give/nice/~] (print tak))
|
||||
==
|
||||
::
|
||||
++ poke-txt :: handle command
|
||||
|= [you=ship txt=cord]
|
||||
^+ +>
|
||||
?: =('\\' (end 3 1 txt)) :: escaped ctrl-key
|
||||
(poke-kyev you [%ctrl ~ ~] (rsh 3 1 txt))
|
||||
?^ act :: pipe to child
|
||||
%+ blab
|
||||
[ost %give %nice ~]
|
||||
(spam /in/[u.act] %rush %txt txt)
|
||||
=+ pas=((full ~(parse from pax lat.hid)) [1 1] (trip txt))
|
||||
?~ q.pas
|
||||
(blab (print leaf/"<syntax error at {<`[@ @]`p.pas>}>"))
|
||||
=+ com=(wonk pas)
|
||||
=> .(+>.$ (eat you com))
|
||||
=. +>.$ (blab (stash txt))
|
||||
+>.$(mow :_(mow [ost %give %nice ~]))
|
||||
::
|
||||
++ print |=(a=tank (print-vase !>(`(list tank)`[a ~])))
|
||||
++ print-vase
|
||||
|= tan=vase :: [p=p:!>(*(list tank)) q=*]
|
||||
^- (list move)
|
||||
%^ spam /out %meta
|
||||
:(slop !>(%rush) !>(%term-line) !>(prompt) !>(~) tan)
|
||||
::
|
||||
++ prompt
|
||||
^- [cord prom]
|
||||
?^ act
|
||||
=+ por=(~(get by pot) u.act)
|
||||
?^ por u.por
|
||||
[(rap 3 (~(got by cub.hid) u.act) '(' u.act ') ' ~) %text]
|
||||
:_ %text
|
||||
?. &(?=([@ @ @ *] pax) =('0' &3.pax))
|
||||
(rsh 3 1 (spat pax))
|
||||
(rap 3 &1.pax '/' &2.pax '=' ?~(|3.pax ~['> '] ~[(spat |3.pax) '> ']))
|
||||
::
|
||||
++ purr
|
||||
|= [cil=span fom=?(%fork %out %main) typ=type sih=sign]
|
||||
^+ +>
|
||||
?< ?=(?(%sage %verb %veer %vega) +<.sih)
|
||||
?- fom
|
||||
%fork
|
||||
?> ?=(%gone +<.sih)
|
||||
%_ +>.$
|
||||
mow :_(mow [ost %give %nice ~])
|
||||
act ?:(=(act [~ cil]) ~ act)
|
||||
==
|
||||
::
|
||||
%main
|
||||
?> ?=(?(%nice %mean) +<.sih)
|
||||
(blab [ost %give +.sih] ping)
|
||||
::
|
||||
%out
|
||||
?. ?=(?(%rust %rush) +<.sih) +>.$
|
||||
?: ?=(%prompt p.sih)
|
||||
?: (~(has by pip) cil) +>.$
|
||||
=. pot (~(put by pot) cil (,[cord prom] q.sih))
|
||||
(blab ping)
|
||||
%- blab
|
||||
?: (~(has by pip) cil)
|
||||
(spam /in/(~(got by pip) cil) %meta (slot 3 typ sih))
|
||||
%- print-vase
|
||||
?+ p.sih
|
||||
!>([(sell (slot 15 [typ sih]))]~)
|
||||
%tang (slot 15 [typ sih])
|
||||
%txt
|
||||
?^ q.sih !! :: move to vase space?
|
||||
!>([leaf/(trip q.sih)]~)
|
||||
==
|
||||
==
|
||||
::
|
||||
++ spam
|
||||
|= [pax=path gip=gift]
|
||||
^- (list move)
|
||||
%+ turn
|
||||
(~(tap in (~(get ju pus.hid) pax)))
|
||||
|=(a=bone [a %give gip])
|
||||
::
|
||||
++ stash
|
||||
|= a=cord
|
||||
%^ spam /out %meta
|
||||
!>([%rush %term-line `term-line`[prompt [a]~ ~]])
|
||||
--
|
||||
--
|
||||
!:
|
||||
:::: formal interface
|
||||
::
|
||||
|_ [hid=hide vat=axle]
|
||||
::
|
||||
++ peer :: handle subscription
|
||||
|= [ost=bone you=ship pax=path]
|
||||
^- [(list move) _+>]
|
||||
?~ pax `+>.$
|
||||
?. ?=(?(%in %out) i.pax) `+>.$
|
||||
=+ ^= gal
|
||||
?: ?=(%out i.pax) %out
|
||||
[%in ?<(?=(~ t.pax) i.t.pax)]
|
||||
=+ abet:(peer:(ve hid ost vat) you gal)
|
||||
[-< +>.$(vat ->)]
|
||||
::
|
||||
++ poke-kyev :: handle key event
|
||||
|= [ost=bone you=ship key=kyev]
|
||||
^- [(list move) _+>]
|
||||
=+ abet:(poke-kyev:(ve hid ost vat) you key)
|
||||
[-< +>.$(vat ->)]
|
||||
::
|
||||
++ poke-txt :: handle command
|
||||
|= [ost=bone you=ship txt=cord]
|
||||
^- [(list move) _+>]
|
||||
=+ abet:(poke-txt:(ve hid ost vat) you txt)
|
||||
[-< +>.$(vat ->)]
|
||||
::
|
||||
++ purr
|
||||
|= [ost=bone pax=path typ=type sih=sign]
|
||||
^- [(list move) _+>]
|
||||
::~& shel-purr/pax
|
||||
:: ~& [%shell-pour -.sih (,@ta +<.sih)]
|
||||
::=+ sih=((hard sign) sih)
|
||||
?: ?=(%sage +<.sih) :: vomit
|
||||
[[ost %give +.sih]~ +>.$]
|
||||
?: ?=(%verb +<.sih) :: vomit
|
||||
[[ost %give +.sih]~ +>.$]
|
||||
?: ?=(%veer +<.sih) :: vomit
|
||||
[[ost %give +.sih]~ +>.$]
|
||||
?: ?=(%vega +<.sih) :: vomit
|
||||
[[ost %give +.sih]~ +>.$]
|
||||
?~ pax ~& %no-path !!
|
||||
?+ &1.pax ~& %strange-path !!
|
||||
%print
|
||||
`+>.$
|
||||
::
|
||||
%child
|
||||
?~ |1.pax ~& %no-child !!
|
||||
?~ |2.pax
|
||||
?> ?=(%gone +<.sih)
|
||||
:- [ost %give %nice ~]~
|
||||
+>.$(act ?:(=(act [~ &2.pax]) ~ act))
|
||||
:_ +>.$
|
||||
?+ &3.pax ~& %strange-child-path !!
|
||||
%main
|
||||
?> ?=(?(%nice %mean) +<.sih)
|
||||
:- [ost %give +.sih]
|
||||
::~& act
|
||||
(print ost our.hid ~)
|
||||
%out
|
||||
?. ?=(?(%rust %rush) +<.sih) ~
|
||||
?: (~(has by pip) &2.pax)
|
||||
:: ~& [%yay &2.pax <pip> <pop>]
|
||||
:: ~& [%spamming-to /in/(~(got by pip) &2.pax) (~(get ju pus.hid) /in/(~(got by pip) &2.pax))]
|
||||
(spam /in/(~(got by pip) &2.pax) %meta (slot 3 typ sih))
|
||||
:: ~& [%nay &2.pax <pip> <pop>]
|
||||
%^ print-vase ost our.hid
|
||||
?+ p.sih
|
||||
!>([(sell (slot 15 [typ sih]))]~)
|
||||
%tang
|
||||
(slot 15 [typ sih])
|
||||
%txt
|
||||
?^ q.sih !! :: move to vase space?
|
||||
!>([leaf/(trip q.sih)]~)
|
||||
==
|
||||
== ==
|
||||
::
|
||||
++ stash
|
||||
|= [a=bone b=ship c=cord]
|
||||
::~& shel-stash/[prompt c]
|
||||
%^ spam /out %meta
|
||||
!>([%rush %term-line `term-line`[prompt [c]~ ~]])
|
||||
::
|
||||
++ print |=([a=bone b=ship c=(list tank)] (print-vase a b !>(c)))
|
||||
++ print-vase
|
||||
|= [ost=bone you=ship tan=vase] :: [p=p:!>(*(list tank)) q=*]
|
||||
^- (list move)
|
||||
::~& shel-print/prompt
|
||||
%^ spam /out %meta
|
||||
:(slop !>(%rush) !>(%term-line) !>(prompt) !>(~) tan)
|
||||
::
|
||||
++ prompt
|
||||
^- @t
|
||||
?^ act
|
||||
(rap 3 (~(got by cub.hid) u.act) '(' u.act ') ' ~)
|
||||
?. &(?=([@ @ @ *] pax) =('0' &3.pax))
|
||||
(rsh 3 1 (spat pax))
|
||||
(rap 3 &1.pax '/' &2.pax '=' ?~(|3.pax ~ [(spat |3.pax)]~))
|
||||
++ exec
|
||||
|= gen=twig
|
||||
%- slap :_ gen
|
||||
%+ roll (~(tap by var))
|
||||
=< .(q pit)
|
||||
|= [[n=term v=vase] q=vase]
|
||||
(slop [[%face n p.v] q.v] q)
|
||||
::
|
||||
++ spam
|
||||
|= [pax=path gip=gift]
|
||||
^- (list move)
|
||||
%+ turn
|
||||
(~(tap in (~(get ju pus.hid) pax)))
|
||||
|=(a=bone [a %give gip])
|
||||
?> ?=([%child span ?(%fork %out %main) ~] pax)
|
||||
=+ abet:(purr:(ve hid ost vat) i.t.pax i.t.t.pax typ sih)
|
||||
[-< +>.$(vat ->)]
|
||||
--
|
||||
|
@ -17,10 +17,10 @@
|
||||
[%g %gall]
|
||||
[%f %ford]
|
||||
[%a %ames]
|
||||
[%b %batz]
|
||||
[%c %clay]
|
||||
[%d %dill]
|
||||
[%e %eyre]
|
||||
[%t %time]
|
||||
==
|
||||
|- ^+ all
|
||||
?~ vay all
|
||||
@ -31,19 +31,21 @@
|
||||
=+ gat=.*(all .*(all [0 42]))
|
||||
=+ nex=+:.*([-.gat [sam +>.gat]] -.gat)
|
||||
$(vay t.vay, all nex)
|
||||
:_ ~ :_ ~
|
||||
~& %solid-jamming
|
||||
=+ pac=(jam [ken all])
|
||||
~& %solid-finished
|
||||
=+ nax=/(scot %p our.hid)/try/(scot %da lat.hid)/urbit/pill
|
||||
:* [ost %pass /cp %c %info our.hid (foal nax pac)]
|
||||
:~ [ost %give %sage [%urbit %pill ~] [ken all]]
|
||||
[ost %give %nice ~]
|
||||
%+ turn (~(tap by sup.hid))
|
||||
|= [ost=bone *]
|
||||
:^ ost %give %rush
|
||||
:- %tang :_ ~
|
||||
leaf/"done"
|
||||
==
|
||||
:: ~& %solid-jamming
|
||||
:: =+ pac=(jam [ken all])
|
||||
:: ~& %solid-finished
|
||||
:: =+ nax=/(scot %p our.hid)/try/(scot %da lat.hid)/urbit/pill
|
||||
:: :* [ost %pass /cp %c %info our.hid (foal nax pac)]
|
||||
:: [ost %give %nice ~]
|
||||
:: %+ turn (~(tap by sup.hid))
|
||||
:: |= [ost=bone *]
|
||||
:: :^ ost %give %rush
|
||||
:: :- %tang :_ ~
|
||||
:: leaf/"done"
|
||||
:: ==
|
||||
++ peer
|
||||
|=
|
||||
*
|
||||
|
18
main/app/sync/core.hook
Normal file
18
main/app/sync/core.hook
Normal file
@ -0,0 +1,18 @@
|
||||
!:
|
||||
|_ [hid=hide ~]
|
||||
++ poke-sync-args
|
||||
|= [ost=bone you=ship syd=@tas her=@p sud=@tas ~]
|
||||
:_ +>.$
|
||||
:* [ost %pass /sync %c %font our.hid syd her sud]
|
||||
[ost %give %nice ~]
|
||||
%+ turn (~(tap by sup.hid))
|
||||
|= [ost=bone *]
|
||||
:^ ost %give %rush
|
||||
:- %tang :_ ~
|
||||
leaf/"synced"
|
||||
==
|
||||
++ peer
|
||||
|=
|
||||
*
|
||||
`+>
|
||||
--
|
@ -3,7 +3,7 @@
|
||||
:::: /hook/core/terminal/app
|
||||
::
|
||||
/? 314 :: need urbit 314
|
||||
/- term-line, kyev
|
||||
/- term-line, term-in, term-ctrl, kyev
|
||||
/= stat /:/%%/:/hymn/
|
||||
::
|
||||
:::: structures
|
||||
@ -15,24 +15,30 @@
|
||||
++ gilt ::
|
||||
$% [%term-line p=term-line] ::
|
||||
[%hymn p=manx] ::
|
||||
[%json p=json] ::
|
||||
== ::
|
||||
++ gift ::
|
||||
$% [%rush gilt] ::
|
||||
[%rust gilt] ::
|
||||
[%mean p=ares] ::
|
||||
[%nice ~] ::
|
||||
[%sage p=path q=*] ::
|
||||
[%verb ~] ::
|
||||
[%veer p=@ta q=path r=@t] ::
|
||||
[%vega p=path] ::
|
||||
== ::
|
||||
++ glas ?(%term %lines) ::
|
||||
++ hapt ,[p=ship q=path] ::
|
||||
++ mess ::
|
||||
$% [%txt p=(hypo cord)] ::
|
||||
[%kyev p=(hypo kyev)] ::
|
||||
== ::
|
||||
++ move ,[p=bone q=(mold note gift)] ::
|
||||
++ note ::
|
||||
$% $: %g ::
|
||||
$% [%cide p=span] ::
|
||||
[%show p=hapt q=ship r=path] ::
|
||||
[%sire p=term q=span] ::
|
||||
[%mess p=hapt q=ship r=[?(%txt %kyev) vase]] ::
|
||||
[%mess p=hapt q=ship r=mess] ::
|
||||
== == == ::
|
||||
++ sign ::
|
||||
$% $: %g ::
|
||||
@ -41,14 +47,17 @@
|
||||
[%nice ~] ::
|
||||
[%rust p=%term-line q=term-line] ::
|
||||
[%rush p=%term-line q=term-line] ::
|
||||
[%sage p=path q=*] ::
|
||||
[%verb ~] ::
|
||||
[%veer p=@ta q=path r=@t] ::
|
||||
[%vega p=path] ::
|
||||
== == ==
|
||||
--
|
||||
::
|
||||
!:
|
||||
:::: helpers
|
||||
::
|
||||
|%
|
||||
++ aut %shell
|
||||
++ encode
|
||||
|= [a=term b=path] ^- span
|
||||
(rap 3 a (turn b |=(c=span (cat 3 '_' c))))
|
||||
@ -62,159 +71,184 @@
|
||||
?~ t.a
|
||||
man(c (weld c.man b))
|
||||
man(c (turn c.man ^$(a t.a)))
|
||||
::
|
||||
++ start-shell
|
||||
|= [our=ship imp=path ost=bone you=ship pax=path]
|
||||
^- (list move)
|
||||
=+ auc=(encode aut pax)
|
||||
:- [ost %pass [%fork pax] %g %sire [aut auc]]
|
||||
[ost %pass [%resp pax] %g %show [our [auc imp]] you /out]~
|
||||
--
|
||||
!:
|
||||
:::: program
|
||||
:::: per shell
|
||||
::
|
||||
|%
|
||||
++ se
|
||||
|= [hid=hide ost=bone you=ship hiz=(map path term-line) pax=path]
|
||||
=+ tel=(fall (~(get by hiz) pax) *term-line)
|
||||
=+ auc=(encode aut pax)
|
||||
=^ mow tel
|
||||
?: (~(has by cub.hid) auc)
|
||||
[~ tel]
|
||||
:- (start-shell our.hid imp.hid ost you pax)
|
||||
tel(r :_(r.tel leaf/"+ {(trip aut)}"))
|
||||
|%
|
||||
++ abet
|
||||
^- [(list move) (map path term-line)]
|
||||
[(flop mow) (~(put by hiz) pax tel)]
|
||||
::
|
||||
++ page
|
||||
%. stat
|
||||
%+ inject
|
||||
~[%html %head]
|
||||
;= ;script: urb.appl = "{(trip app.hid)}"
|
||||
;script: urb.term = \{pax: "{(spud pax)}"}
|
||||
==
|
||||
::
|
||||
++ peer
|
||||
|= gal=glas
|
||||
%_ +>.$
|
||||
mow
|
||||
:_ mow
|
||||
?- gal
|
||||
%term [ost %give %rust %hymn page] :: hymn front end
|
||||
%lines [ost %give %rust %term-line tel] :: term-line output
|
||||
==
|
||||
==
|
||||
::
|
||||
++ poke
|
||||
|= jof=$%([%line p=span] [%res p=span] [%cmd p=char])
|
||||
^+ +>
|
||||
?- -.jof
|
||||
%res :: restart shell
|
||||
=. +>.$
|
||||
?. (~(has by cub.hid) auc) +>.$
|
||||
%_ +>.$
|
||||
mow :_(mow [ost %pass [%fork pax] %g %cide auc])
|
||||
r.tel :_(r.tel leaf/"- {(trip aut)}")
|
||||
==
|
||||
%_ +>.$
|
||||
r.tel :_(r.tel leaf/"+ {(trip auc)}")
|
||||
mow
|
||||
;: welp
|
||||
(spam tel)
|
||||
[ost %give %nice ~]~
|
||||
(start-shell our.hid imp.hid ost you pax)
|
||||
mow
|
||||
==
|
||||
==
|
||||
::
|
||||
%line :: command entered
|
||||
=. r.tel
|
||||
:_ r.tel
|
||||
stem/[leaf/(trip p.p.tel) leaf/(trip p.jof)]
|
||||
?: =('\\' (end 3 1 p.jof))
|
||||
$(jof [%cmd (rsh 3 1 p.jof)])
|
||||
(send %txt -:!>(*cord) p.jof)
|
||||
::
|
||||
%cmd :: key command
|
||||
?+ p.jof
|
||||
(send %kyev -:!>(*kyev) [[%ctrl ~ ~] p.jof])
|
||||
%r $(jof [%res 'shell'])
|
||||
==
|
||||
==
|
||||
::
|
||||
++ poke-ctrl
|
||||
.(mow :_(mow [ost %give %rush %term-line [p q ~]:tel]))
|
||||
::
|
||||
++ pour
|
||||
|= [dis=?(%fork %resp %txt %kyev) sih=sign]
|
||||
^+ +>
|
||||
?- dis
|
||||
%fork ?>(?=(%gone +<.sih) +>.$) :: XX maybe mean?
|
||||
%resp
|
||||
?+ +<.sih !!
|
||||
%nice +>.$
|
||||
?(%rust %rush)
|
||||
=. p.q.sih ?^(q.q.sih p.tel p.q.sih) :: XX prompt hack
|
||||
%_ +>.$
|
||||
mow (welp (spam q.sih) mow)
|
||||
tel [p.q.sih (weld q.q.sih q.tel) (weld r.q.sih r.tel)]
|
||||
==
|
||||
==
|
||||
::
|
||||
?(%txt %kyev)
|
||||
?+ +<.sih !!
|
||||
%nice +>.$(mow :_(mow [ost %give +.sih]))
|
||||
%mean
|
||||
=+ ^= new
|
||||
=- (turn - |=(a=tank rose/[~ "! " ~]^[a]~))
|
||||
^- (list tank)
|
||||
?~ p.sih ~
|
||||
(welp q.u.p.sih leaf/(trip p.u.p.sih) ~)
|
||||
%_ +>.$
|
||||
r.tel (welp new r.tel)
|
||||
mow
|
||||
%- welp :_ mow
|
||||
[[ost %give +.sih] (spam [p.tel q.tel new])]
|
||||
==
|
||||
==
|
||||
==
|
||||
::
|
||||
++ send
|
||||
|= mez=mess
|
||||
%_ +>.$
|
||||
mow
|
||||
%- welp :_ mow
|
||||
^- (list move)
|
||||
%+ murn (~(tap by cub.hid))
|
||||
|= [p=span q=term]
|
||||
?. =(pax q:(decode p)) ~
|
||||
%- some ^- move
|
||||
:^ ost %pass [-.mez pax]
|
||||
[%g %mess [our.hid p imp.hid] you mez]
|
||||
==
|
||||
::
|
||||
++ spam
|
||||
|= tol=term-line
|
||||
^- (list move)
|
||||
%+ murn
|
||||
(~(tap by sup.hid))
|
||||
|= [ost=bone @ paf=path]
|
||||
?: =([%lines pax] paf)
|
||||
(some ost %give %rush %term-line tol)
|
||||
~
|
||||
--
|
||||
--
|
||||
!:
|
||||
:::: formal interface
|
||||
::
|
||||
|_ [hid=hide axle]
|
||||
++ page
|
||||
|= pax=path
|
||||
%. stat
|
||||
%+ inject
|
||||
~[%html %head]
|
||||
;= ;script: urb.appl = "{(trip app.hid)}"
|
||||
;script: urb.term = \{pax: "{(spud pax)}"}
|
||||
==
|
||||
::
|
||||
++ peer
|
||||
|= [ost=bone you=ship pax=path]
|
||||
^- [(list move) _+>]
|
||||
?~ pax
|
||||
$(pax /term)
|
||||
?+ -.pax !!
|
||||
%lines
|
||||
:_ +>.$
|
||||
:_ ~
|
||||
(jell ost t.pax)
|
||||
%term
|
||||
=+ tel=(fall (~(get by hiz) t.pax) *term-line)
|
||||
=^ mof r.tel
|
||||
=+ aut=%shell
|
||||
=+ auc=(encode aut t.pax)
|
||||
?: (~(has by cub.hid) auc)
|
||||
[~ r.tel]
|
||||
:_ :_(r.tel leaf/"+ {(trip aut)}")
|
||||
:_ [ost %pass [%hi auc mar/[t.pax]] %g %sire [aut auc]]~
|
||||
:^ ost %pass [%hi auc in/[t.pax]]
|
||||
:+ %g %show
|
||||
[[our.hid [auc imp.hid]] you /out]
|
||||
=. hiz (~(put by hiz) t.pax tel)
|
||||
:_ +>.$
|
||||
[[ost %give %rust %hymn (page t.pax)] mof]
|
||||
==
|
||||
?. ?=(glas i.pax)
|
||||
[[ost %give %mean ~ %bad-path ~]~ +>.$]
|
||||
=+ abet:(peer:(se hid ost you hiz t.pax) i.pax)
|
||||
[-< +>.$(hiz ->)]
|
||||
::
|
||||
++ poke-json
|
||||
|= [ost=bone you=ship jon=json]
|
||||
++ poke-term-in
|
||||
|= [ost=bone you=ship term-in]
|
||||
^- [(list move) _+>]
|
||||
::~& tem-poke/jon
|
||||
=+ ^- [pax=path jof=$%([%line p=span] [%res p=span] [%cmd p=char])]
|
||||
%- need
|
||||
%. jon => jo
|
||||
%^ ot
|
||||
pax/(su ;~(pfix fas (more fas sym)))
|
||||
act/(of line/so res/so cmd/so ~)
|
||||
~
|
||||
|-
|
||||
=+ tel=(fall (~(get by hiz) pax) *term-line)
|
||||
?- -.jof
|
||||
%res
|
||||
=+ joc=(encode p.jof pax)
|
||||
=^ mof r.tel
|
||||
?. (~(has by cub.hid) joc)
|
||||
[~ r.tel]
|
||||
:_ :_(r.tel leaf/"- {(trip p.jof)}")
|
||||
[ost %pass [%hi joc mar/pax] %g %cide joc]~
|
||||
::~& poke-sire/[jof cub.hid]
|
||||
=. r.tel :_(r.tel leaf/"+ {(trip joc)}")
|
||||
=. hiz (~(put by hiz) pax tel)
|
||||
:_ +>.^$
|
||||
%+ welp mof
|
||||
:^ [ost %give %nice ~]
|
||||
:^ ost %pass [%hi joc in/[pax]]
|
||||
:^ %g %show [our.hid joc imp.hid]
|
||||
:- you /out
|
||||
[ost %pass [%hi joc mar/pax] %g %sire [p.jof joc]]
|
||||
(spam pax)
|
||||
::
|
||||
%line
|
||||
=. r.tel :_(r.tel rose/["> " ~ ~]^~[leaf/(trip p.tel) leaf/(trip p.jof)])
|
||||
=. hiz (~(put by hiz) pax tel)
|
||||
?: =('\\' (end 3 1 p.jof))
|
||||
$(jof [%cmd (rsh 3 1 p.jof)])
|
||||
:_ +>.^$
|
||||
(send ost you pax %txt !>(p.jof))
|
||||
%cmd
|
||||
?+ p.jof :_(+>.^$ (send ost you pax %kyev !>(`kyev`[[%ctrl ~ ~] p.jof])))
|
||||
%r $(jof [%res 'shell'])
|
||||
==
|
||||
==
|
||||
++ send
|
||||
|= [ost=bone you=ship pax=path mez=[?(%txt %kyev) vase]]
|
||||
%+ murn (~(tap by cub.hid))
|
||||
|= [p=span q=term]
|
||||
?. =(pax q:(decode p)) ~
|
||||
%- some ^- move
|
||||
:^ ost %pass [-.mez p (scot %da lat.hid) pax]
|
||||
[%g %mess [our.hid p imp.hid] you mez]
|
||||
=+ abet:(poke:(se hid ost you hiz pax) jof)
|
||||
[-< +>.$(hiz ->)]
|
||||
::
|
||||
++ jell
|
||||
|= [a=bone b=path]
|
||||
[a %give %rust %json (tel-to-jon (fall (~(get by hiz) b) *term-line))]
|
||||
::
|
||||
++ spam
|
||||
|= pax=path
|
||||
::~& tem-spam/(~(run by hiz) |=(term-line p))
|
||||
%+ murn
|
||||
(~(tap by sup.hid))
|
||||
|= [ost=bone @ paf=path]
|
||||
?. =([%lines pax] paf) ~
|
||||
(some (jell ost pax))
|
||||
++ poke-term-ctrl
|
||||
|= [ost=bone you=ship col=term-ctrl]
|
||||
^- [(list move) _+>]
|
||||
=+ abet:poke-ctrl:(se hid ost you hiz /)
|
||||
[-< +>.$(hiz ->)]
|
||||
::
|
||||
++ pour
|
||||
|= [ost=bone pax=path sih=*]
|
||||
^- [(list move) _+>]
|
||||
=+ sih=((hard sign) sih)
|
||||
?: ?=(?(%veer %vega) &2.sih) :: vomit
|
||||
?: ?=(?(%sage %verb %veer %vega) &2.sih) :: vomit
|
||||
[[ost %give +.sih]~ +>.$]
|
||||
?: ?=(%gone &2.sih)
|
||||
`+>.$
|
||||
=* paf |3.pax
|
||||
?: ?=([%hi @ %in *] pax)
|
||||
?+ &2.sih !!
|
||||
%nice `+>.$
|
||||
?(%rust %rush)
|
||||
=+ tol=(fall (~(get by hiz) paf) *term-line)
|
||||
=. tol ?^ q.q.sih :: XX prompt hack
|
||||
[p.tol (weld q.q.sih q.tol) (weld r.q.sih r.tol)]
|
||||
[p.q.sih (weld q.q.sih q.tol) (weld r.q.sih r.tol)]
|
||||
=. hiz (~(put by hiz) paf tol)
|
||||
[(spam paf) +>.$]
|
||||
==
|
||||
=+ tel=(fall (~(get by hiz) paf) *term-line)
|
||||
=+ old=tel
|
||||
=. r.tel
|
||||
?. ?=(%mean &2.sih) r.tel
|
||||
%- welp :_ r.tel
|
||||
=- (turn - |=(a=tank rose/[~ "! " ~]^[a]~))
|
||||
^- (list tank)
|
||||
?~ p.sih ~
|
||||
(welp q.u.p.sih leaf/(trip p.u.p.sih) ~)
|
||||
=. hiz (~(put by hiz) paf tel)
|
||||
:_ +>.$
|
||||
:- [ost %give +.sih]
|
||||
::?: =(old tel) ~
|
||||
(spam paf)
|
||||
::
|
||||
++ tel-to-jon
|
||||
|= tel=term-line
|
||||
%- jobe
|
||||
:~ [%prompt %s p.tel]
|
||||
[%history %a (turn q.tel |=(a=cord [%s a]))]
|
||||
:+ %lines %a
|
||||
%- zing ^- (list (list json))
|
||||
%+ turn (flop r.tel) |= a=tank
|
||||
?. ?=([%rose [[%'>' %' ' ~] ~ ~] [%leaf *] [%leaf *] ~] a)
|
||||
(turn (wash 0^80 a) jape)
|
||||
[(jobe prompt/(jape p.i.q.a) task/(jape p.i.t.q.a) ~)]~
|
||||
==
|
||||
?~ pax !!
|
||||
?. ?=(?(%fork %resp %txt %kyev) i.pax) !!
|
||||
=+ abet:(pour:(se hid ost our.hid hiz t.pax) i.pax sih)
|
||||
[-< +>.$(hiz ->)]
|
||||
--
|
||||
|
@ -1,7 +1,7 @@
|
||||
function jpok(a,b){
|
||||
var dat = {pax:urb.term.pax, act:{}}
|
||||
dat.act[a] = b
|
||||
urb.send({data:dat}, function(e,dat){
|
||||
urb.send({data:dat,mark:"term-in"}, function(e,dat){
|
||||
if(a === 'line' && dat.data.err){
|
||||
hist.unshift(prom.val())
|
||||
prom.val(b)
|
||||
@ -81,19 +81,19 @@ $(function() {
|
||||
if(urb.term.pax != "/") pax += urb.term.pax
|
||||
urb.subscribe({path: pax}, function(e, dat){
|
||||
if(dat.data.ok) return;
|
||||
hist = dat.data.history
|
||||
hist = dat.data.history.concat(hist)
|
||||
hind = 0
|
||||
cont.innerHTML = ''
|
||||
// cont.innerHTML = ''
|
||||
for(var i in dat.data.lines){
|
||||
var lom = dat.data.lines[i]
|
||||
if(typeof lom == 'string')
|
||||
$(cont).append($('<div>').text(lom))
|
||||
else {
|
||||
$(cont).append($('<b>').text(lom.prompt + '> '),
|
||||
$(cont).append($('<b>').text(lom.prompt),
|
||||
$('<div class="prom">').text(lom.task))
|
||||
}
|
||||
}
|
||||
window.scrollTo(0,document.body.scrollHeight)
|
||||
prem.textContent = dat.data.prompt + '> '
|
||||
prem.textContent = dat.data.prompt
|
||||
})
|
||||
});
|
||||
|
33
main/app/ticket/core.hook
Normal file
33
main/app/ticket/core.hook
Normal file
@ -0,0 +1,33 @@
|
||||
!:
|
||||
|_ [hid=hide ~]
|
||||
++ poke-ticket-args
|
||||
|= [ost=bone you=ship her=@p num=?(~ [p=@ud ~])]
|
||||
:_ +>.$
|
||||
=+ n=?~(num 1 p.num)
|
||||
=+ ^= sep ^- @
|
||||
=+ mir=(clan her)
|
||||
?+ mir ~|(%ticket-clan !!)
|
||||
%king (bex 8)
|
||||
%duke (bex 16)
|
||||
%earl (bex 32)
|
||||
==
|
||||
:- [ost %give %nice ~]
|
||||
|-
|
||||
?: ?=(0 n) ~
|
||||
=+ ^= tic
|
||||
(,@p .^(%a (scot %p our.hid) %tick (scot %da lat.hid) (scot %p her) ~))
|
||||
%+ welp
|
||||
(spam ost "{<her>}: {<tic>}")
|
||||
$(her (add sep her), n (dec n))
|
||||
++ spam
|
||||
|= [ost=bone msg=tape]
|
||||
%+ turn (~(tap by sup.hid))
|
||||
|= [ost=bone *]
|
||||
:^ ost %give %rush
|
||||
:- %tang :_ ~
|
||||
leaf/msg
|
||||
++ peer
|
||||
|=
|
||||
*
|
||||
`+>
|
||||
--
|
18
main/app/unsync/core.hook
Normal file
18
main/app/unsync/core.hook
Normal file
@ -0,0 +1,18 @@
|
||||
!:
|
||||
|_ [hid=hide ~]
|
||||
++ poke-unsync-args
|
||||
|= [ost=bone you=ship syd=@tas her=@p sud=@tas ~]
|
||||
:_ +>.$
|
||||
:* [ost %pass /sync %c %plug our.hid syd her sud]
|
||||
[ost %give %nice ~]
|
||||
%+ turn (~(tap by sup.hid))
|
||||
|= [ost=bone *]
|
||||
:^ ost %give %rush
|
||||
:- %tang :_ ~
|
||||
leaf/"unsynced"
|
||||
==
|
||||
++ peer
|
||||
|=
|
||||
*
|
||||
`+>
|
||||
--
|
13
main/app/verb/core.hook
Normal file
13
main/app/verb/core.hook
Normal file
@ -0,0 +1,13 @@
|
||||
!:
|
||||
|_ [hid=hide ~]
|
||||
++ poke-verb-args
|
||||
|= [ost=bone you=ship ~]
|
||||
:_ +>.$
|
||||
:~ [ost %give %verb ~]
|
||||
[ost %give %nice ~]
|
||||
==
|
||||
++ peer
|
||||
|=
|
||||
*
|
||||
`+>
|
||||
--
|
@ -24,7 +24,6 @@
|
||||
:~ [%$ %zuse]
|
||||
[%f %ford]
|
||||
[%a %ames]
|
||||
[%b %batz]
|
||||
[%c %clay]
|
||||
[%d %dill]
|
||||
[%e %eyre]
|
||||
|
15
main/mar/begin-args/door.hook
Normal file
15
main/mar/begin-args/door.hook
Normal file
@ -0,0 +1,15 @@
|
||||
::
|
||||
:::: /hoon/core/zing/pro
|
||||
::
|
||||
/? 314
|
||||
/- begin-args
|
||||
|_ arg=begin-args
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun :: convert from %noun
|
||||
|= src=*
|
||||
^+ +>+
|
||||
+>+(arg (begin-args src))
|
||||
--
|
||||
--
|
15
main/mar/sync-args/door.hook
Normal file
15
main/mar/sync-args/door.hook
Normal file
@ -0,0 +1,15 @@
|
||||
::
|
||||
:::: /hoon/core/zing/pro
|
||||
::
|
||||
/? 314
|
||||
/- sync-args
|
||||
|_ arg=sync-args
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun :: convert from %noun
|
||||
|= src=*
|
||||
^+ +>+
|
||||
+>+(arg (sync-args src))
|
||||
--
|
||||
--
|
21
main/mar/term-in/door.hook
Normal file
21
main/mar/term-in/door.hook
Normal file
@ -0,0 +1,21 @@
|
||||
::
|
||||
:::: /hook/door/term-in/mar
|
||||
::
|
||||
/? 314
|
||||
/- term-in
|
||||
!:
|
||||
|_ term-in
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ json
|
||||
|= jon=^json
|
||||
%- need
|
||||
%. jon => jo
|
||||
%^ ot
|
||||
pax/(su ;~(pfix fas (more fas sym)))
|
||||
act/(of line/so res/so cmd/so ~)
|
||||
~
|
||||
++ noun term-in :: clam from %noun
|
||||
--
|
||||
--
|
@ -9,4 +9,19 @@
|
||||
|%
|
||||
++ noun term-line :: clam from %noun
|
||||
--
|
||||
::
|
||||
++ grow
|
||||
|%
|
||||
++ json
|
||||
%- jobe
|
||||
:~ [%prompt %s p.p.tel]
|
||||
[%history %a (turn q.tel |=(a=cord [%s a]))]
|
||||
:+ %lines %a
|
||||
%- zing ^- (list (list ^json))
|
||||
%+ turn (flop r.tel) |= a=?(tank [%stem p=tank q=tank])
|
||||
?. ?=(%stem -.a)
|
||||
(turn (wash 0^80 a) jape)
|
||||
[(jobe prompt/(jape ~(ram re p.a)) task/(jape ~(ram re q.a)) ~)]~
|
||||
==
|
||||
--
|
||||
--
|
||||
|
15
main/mar/ticket-args/door.hook
Normal file
15
main/mar/ticket-args/door.hook
Normal file
@ -0,0 +1,15 @@
|
||||
::
|
||||
:::: /hoon/core/zing/pro
|
||||
::
|
||||
/? 314
|
||||
/- ticket-args
|
||||
|_ arg=ticket-args
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun :: convert from %noun
|
||||
|= src=*
|
||||
^+ +>+
|
||||
+>+(arg (ticket-args src))
|
||||
--
|
||||
--
|
15
main/mar/unsync-args/door.hook
Normal file
15
main/mar/unsync-args/door.hook
Normal file
@ -0,0 +1,15 @@
|
||||
::
|
||||
:::: /hoon/core/zing/pro
|
||||
::
|
||||
/? 314
|
||||
/- unsync-args
|
||||
|_ arg=unsync-args
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun :: convert from %noun
|
||||
|= src=*
|
||||
^+ +>+
|
||||
+>+(arg (unsync-args src))
|
||||
--
|
||||
--
|
15
main/mar/verb-args/door.hook
Normal file
15
main/mar/verb-args/door.hook
Normal file
@ -0,0 +1,15 @@
|
||||
::
|
||||
:::: /hoon/core/zing/pro
|
||||
::
|
||||
/? 314
|
||||
/- verb-args
|
||||
|_ arg=verb-args
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun :: convert from %noun
|
||||
|= src=*
|
||||
^+ +>+
|
||||
+>+(arg (verb-args src))
|
||||
--
|
||||
--
|
11
main/mar/will/door.hook
Normal file
11
main/mar/will/door.hook
Normal file
@ -0,0 +1,11 @@
|
||||
::
|
||||
:::: /hook/door/will/mar
|
||||
::
|
||||
/? 314
|
||||
|_ wyl=will
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun will :: clam from %noun
|
||||
--
|
||||
--
|
1
main/sur/bang-args/gate.hook
Normal file
1
main/sur/bang-args/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
,[mov=(mold) ~]
|
1
main/sur/begin-args/gate.hook
Normal file
1
main/sur/begin-args/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
(list)
|
1
main/sur/sync-args/gate.hook
Normal file
1
main/sur/sync-args/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
,[syd=@tas her=@p sud=@tas ~]
|
1
main/sur/term-ctrl/gate.hook
Normal file
1
main/sur/term-ctrl/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
,%hail
|
1
main/sur/term-in/gate.hook
Normal file
1
main/sur/term-in/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
,[pax=path jof=$%([%line p=span] [%res p=span] [%cmd p=char])]
|
@ -1 +1 @@
|
||||
,[p=cord q=(list cord) r=(list tank)]
|
||||
,[p=[p=cord q=prom] q=(list cord) r=(list ?(tank [%stem p=tank q=tank]))]
|
||||
|
1
main/sur/ticket-args/gate.hook
Normal file
1
main/sur/ticket-args/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
,[her=@p num=?(~ [p=@ud ~])]
|
1
main/sur/unsync-args/gate.hook
Normal file
1
main/sur/unsync-args/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
,[syd=@tas her=@p sud=@tas ~]
|
1
main/sur/verb-args/gate.hook
Normal file
1
main/sur/verb-args/gate.hook
Normal file
@ -0,0 +1 @@
|
||||
,[~]
|
Loading…
Reference in New Issue
Block a user