mirror of
https://github.com/urbit/shrub.git
synced 2024-12-13 06:25:09 +03:00
31 lines
797 B
Plaintext
31 lines
797 B
Plaintext
|
/- spider
|
||
|
/+ strandio
|
||
|
=, strand=strand:spider
|
||
|
^- thread:spider
|
||
|
|= arg=vase
|
||
|
=/ m (strand ,vase)
|
||
|
^- form:m
|
||
|
|^
|
||
|
=+ !<([=a=path =b=path ~] arg)
|
||
|
=/ a-mark=mark -:(flop a-path)
|
||
|
=/ b-mark=mark -:(flop b-path)
|
||
|
?. =(a-mark b-mark)
|
||
|
(strand-fail:strandio %files-not-same-type ~)
|
||
|
=/ a-beam (need (de-beam:format a-path))
|
||
|
;< =a=cage bind:m (get-file a-path)
|
||
|
;< =b=cage bind:m (get-file b-path)
|
||
|
;< =dais:clay bind:m (build-mark:strandio -.a-beam a-mark)
|
||
|
(pure:m (~(diff dais q.a-cage) q.b-cage))
|
||
|
::
|
||
|
++ get-file
|
||
|
|= =path
|
||
|
=/ m (strand ,cage)
|
||
|
^- form:m
|
||
|
=/ beam (need (de-beam:format path))
|
||
|
;< =riot:clay bind:m
|
||
|
(warp:strandio p.beam q.beam ~ %sing %x r.beam (flop s.beam))
|
||
|
?~ riot
|
||
|
(strand-fail:strandio %file-not-found >path< ~)
|
||
|
(pure:m r.u.riot)
|
||
|
--
|