urbit/gen/hood/merge.hoon
Joe Bryan c8f1b4d5a1 Merge branch 'release-candidate' into ames-eth-keys
* release-candidate: (33 commits)
  update pin-vere-commit.txt
  Bug fix for metal-wrapping runes
  Remove old-zuse (#867)
  Type Analysis (#865)
  remove clam from error sigpam
  Fix compiler error.
  Remove temporary type analysis work.
  Remove ++cook from ++auri parsing
  Remove forced ssl upgrade for localhost http reqs
  moved to new branch with updated arvo
  11. demacrotizes %6, %7, %8, and %9
  10. updates %5 to require two subformulas (4K)
  9. emits %10 (4K)
  8. adds and implements edit (%10) (4K)
  7. removes %13 and %14 (4K)
  6. emits %11 and %12 (4K)
  5. implements hint at %11 and wish at %12 (4K)
  4. removes %10 and %11 (4K)
  3. emits %13 and %14 (4K)
  2. implements %13 and %14 (4K)
  ...
2018-11-01 00:18:54 -04:00

47 lines
1.1 KiB
Plaintext

:: Kiln: Merge local desk from (optionally-)foreign one
::
:::: /hoon/merge/hood/gen
::
/? 310
=, clay
::
|%
++ beaky {knot knot knot ~}
++ sorc ?({bek/beaky ~} {her/@p sud/@tas ~})
--
::
::::
::
:- %say
|= $: {now/@da eny/@uvJ bek/beak}
{arg/{?(sorc {syd/$@(desk beaky) sorc})} cas/case gem/?(germ $auto)}
==
=* our p.bek
|^ :- %kiln-merge
^- {syd/desk her/ship sud/desk cas/case gem/?(germ $auto)}
?- arg
{@ @ ~}
=+(arg [sud ?.(=(our her) her (sein:title p.bek now her)) sud (opt-case da+now) gem])
::
{^ ~}
=+ (pars bek.arg)
[dez ?.(=(our who) who (sein:title p.bek now who)) dez (opt-case caz) gem]
::
{* @ @ ~}
:- (pars-src syd.arg)
=+(arg [her sud (opt-case da+now) gem])
::
{* ^ ~}
:- (pars-src syd.arg)
=+((pars bek.arg) [who dez (opt-case caz) gem])
==
++ opt-case |=(a/case ?:(=(*case cas) a cas)) :: override
++ pars |=(a/beaky `{{who/ship dez/desk caz/case} *}`(need (de-beam:format a)))
++ pars-src
|= syd/$@(desk beaky)
?@ syd syd
=+ (pars syd)
~| [%into-foreign who `path`syd]
?>(=(our who) dez)
--