diff --git a/main/app/helm/core.hook b/main/app/helm/core.hook index 0c3fec95d..da77deb97 100644 --- a/main/app/helm/core.hook +++ b/main/app/helm/core.hook @@ -62,6 +62,7 @@ ++ note-clay :: filesystem command $% [%font p=@p q=@tas r=@p s=@tas] :: [%info p=@p q=@tas r=nori] :: + [%lynx p=@p q=@tas r=(unit ,?)] :: [%merg p=@p q=@tas r=@p s=@tas t=germ] :: == :: ++ note-dill :: system command @@ -157,13 +158,21 @@ [ost %pass /reload %d %flog %veer tip pax txt] :: ++ he-wish-sync - |= [syd=@tas her=@p sud=@tas ~] + |= [syd=desk her=ship sud=desk ~] %_ . moz :_ moz [ost %pass /sync %c %font our.hid syd her sud] == :: + ++ he-wish-unix + |= [syd=desk syn=(unit ,?)] + %_ . + moz + :_ moz + [ost %pass /unix %c %lynx our.hid syd syn] + == + :: ++ he-wish-verb %_ . moz @@ -436,10 +445,15 @@ he-abet:merge-abet:(start:(he-wish-merge:(hoke ost her) syd) ali sud gem) :: ++ poke-helm-sync - |= [ost=bone her=ship all=[@tas @p @tas ~]] + |= [ost=bone her=ship all=[desk ship desk ~]] ~& %poke-helm-sync he-abet:(he-wish-sync:(hake ost her) all) :: +++ poke-helm-unix + |= [ost=bone her=ship all=[desk (unit ,?)]] + ~& %poke-helm-unix + he-abet:(he-wish-unix:(hake ost her) all) +:: ++ poke-helm-begin |= [ost=bone you=ship begs] ~& %poke-helm-begin diff --git a/main/arvo/clay.hoon b/main/arvo/clay.hoon index 26ced8253..e0d4f8d6d 100644 --- a/main/arvo/clay.hoon +++ b/main/arvo/clay.hoon @@ -15,6 +15,7 @@ dom=dome :: desk data dok=(unit dork) :: outstanding diffs mer=(map (pair ship desk) mery) :: outstanding merges + syn=? :: sync to unix == :: ++ gift :: out result <-$ $% [%ergo p=@p q=@tas r=@ud s=(list ,[path (unit mime)])] @@ -33,6 +34,7 @@ [%info p=@p q=@tas r=nori] :: internal edit [%init p=@p] :: report install [%into p=@p q=@tas r=khan] :: external edit + [%lynx p=@p q=@tas r=(unit ,?)] :: sync to unix [%merg p=@p q=@tas r=@p s=@tas t=germ] :: merge desks [%plug p=@p q=@tas r=@p s=@tas] :: unset upstream [%wart p=sock q=@tas r=path s=*] :: network request @@ -132,6 +134,7 @@ dom=dome :: revision state dok=(unit dork) :: outstanding diffs mer=(map (pair ship desk) mery) :: outstanding merges + syn=? :: sync to unix == :: ++ riff ,[p=desk q=(unit rave)] :: request/desist ++ rind :: request manager @@ -165,13 +168,13 @@ mim=(map path mime) :: mime cache == :: -- => -:::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: section 4cA, filesystem logic :: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: section 4cA, filesystem logic :: :: :: :: |% -++ de :: per desk +++ de :: per desk |= [now=@da hen=duct hun=duct hez=(unit duct)] |= [[who=@p for=@p] syd=@ta rede ran=rang] =* red +<+>- @@ -296,6 +299,11 @@ fod.u.ref (~(put by fod.u.ref) hen inx) == :: + ++ lynx + |= sun=(unit ,?) + ^+ +> + +>.$(syn ?~(sun !syn u.sun)) + :: ++ ease :: release request ^+ . ?~ ref @@ -722,6 +730,7 @@ =. ank.dom (checkout-ankh:ze (mo can)) :: ~& %checked-out ?~ hez +>.$(dok ~) + ?. syn +>.$(dok ~) =+ ^= ceq |= a=miso ?| ?=(%del -.a) @@ -758,7 +767,8 @@ yel [[hen %note '!' %rose [" " "" ""] leaf/"clay ergo failed" p.res] yel] == - ?~ hez ~& %no-sync-duct !! + ?~ hez ~|(%no-sync-duct !!) + ?. syn ~|(%sync-off !!) =+ cay=p.res ?@ p.cay ~| %patch-bad-marc !! %= +>.$ @@ -1440,16 +1450,26 @@ :^ ~ ~ %arch :- -:!>(*arch) ^- arch - :+ *@uvI - ?.((~(has by q.yak) pax) ~ `0vfak.ehash) :: XX hash of lobes + =+ ^- descendants=(list (pair path lobe)) + %+ turn + %+ skim (~(tap by (~(del by q.yak) pax))) + |= [paf=path lob=lobe] + =(pax (scag len paf)) + |= [paf=path lob=lobe] + [(slag len paf) lob] + =+ us=(~(get by q.yak) pax) + :+ ?: &(?=(~ descendants) ?=(~ us)) + *@uvI + %+ roll + ^- (list (pair path lobe)) + [[~ ?~(us *lobe u.us)] descendants] + |=([[path lobe] @uvI] (shax (jam +<))) + us ^- (map span ,~) %- mo ^- (list (pair span ,~)) - %+ turn - %+ skim (~(tap by (~(del by q.yak) pax))) - |= [paf=path lob=lobe] - =(pax (scag len paf)) + %+ turn descendants |= [paf=path lob=lobe] - [(snag len paf) ~] + [?>(?=(^ paf) i.paf) ~] :: ++ read-at-aeon :: read-at-aeon:ze |= [yon=aeon mun=mood] :: seek and read @@ -2132,6 +2152,8 @@ =. ank.dom ank.dat ?~ hez (done:he ~) + ?. syn + (done:he ~) ergo :: ++ ergo @@ -2185,6 +2207,8 @@ == ?~ hez (error:he %ergo-no-hez ~) + ?. syn + (error:he %ergo-sync-off ~) ?: ?=(%| -.gon.dat) +>.$ %= +>.$ @@ -2270,7 +2294,7 @@ ?^(rug u.rug *rung) =+ ^= red ^- rede =+ yit=(~(get by rus.rug) syd) - ?^(yit u.yit `rede`[~2000.1.1 ~ [~ *rind] *dome ~ ~]) + ?^(yit u.yit `rede`[~2000.1.1 ~ [~ *rind] *dome ~ ~ %|]) ((de now hen ~ ~) [who him] syd red ran.ruf) :: ++ posh @@ -2293,7 +2317,7 @@ %_ +> ran.ruf run dos.yar - (~(put by dos.yar) syd [qyx.red dom.red dok.red mer.red]) + (~(put by dos.yar) syd [qyx.red dom.red dok.red mer.red syn.red]) == :: ++ wake @@ -2313,7 +2337,7 @@ %^ (de now hen hun.yar hez.yar) [who who] syd - [[now qyx.saq ~ dom.saq dok.saq mer.saq] ran.ruf] + [[now qyx.saq ~ dom.saq dok.saq mer.saq syn.saq] ran.ruf] -- -- :::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -2406,6 +2430,19 @@ :~ [hen %slip %c %info p.q.hic q.q.hic %& p.cos one] [hen %slip %c %info p.q.hic q.q.hic %& p.cos two] == + :: + %lynx + ?: =(%$ q.q.hic) + [~ ..^$] + =^ mos ruf + =+ une=(un p.q.hic now hen ruf) + =+ ^= zat + (lynx:(di:wake:une q.q.hic) r.q.hic) + =+ zot=abet.zat + :- -.zot + =. une (pish:une q.q.hic +.zot ran.zat) + abet:une + [mos ..^$] :: %merg :: direct state up ?: =(%$ q.q.hic) @@ -2474,6 +2511,7 @@ ++ scry :: inspect |= [fur=(unit (set monk)) ren=@tas his=ship syd=desk lot=coin tyl=path] ^- (unit (unit cage)) + ~& > [%scrying ren=ren his=his syd=syd lot=lot tyl=tyl] =+ got=(~(has by fat.ruf) his) =+ luk=?.(?=(%$ -.lot) ~ ((soft case) p.lot)) ?~ luk [~ ~] diff --git a/main/arvo/ford.hoon b/main/arvo/ford.hoon index 53e42c2e8..e930ba042 100644 --- a/main/arvo/ford.hoon +++ b/main/arvo/ford.hoon @@ -331,7 +331,6 @@ :^ %pass [(scot %p our) (scot %ud num) (scot %ud p.kig) (tope bek ~)] %c - ~& >> [%camping bem] [%warp [our p.bem] q.bem [~ %sing ren r.bem (flop s.bem)]] == ::