:: pull-hook-virt: virtualisation for pull-hook /- *resource |_ =bowl:gall ++ mule-scry |= [ref=* raw=*] =/ pax=(unit path) ((soft path) raw) ?~ pax ~ ?. ?=([@ @ @ @ *] u.pax) ~ =/ ship (slaw %p i.t.u.pax) =/ ved (slay i.t.t.t.u.pax) =/ dat ?~ ved now.bowl =/ cas=(unit case) ((soft case) p.u.ved) ?~ cas now.bowl ?: ?=(%da -.u.cas) p.u.cas now.bowl :: catch bad gall scries early ?: ?& =((end 3 i.u.pax) %g) ?| !=(`our.bowl ship) !=(dat now.bowl) == == ~ ``.^(* u.pax) :: ++ kick-mule |= [rid=resource trp=(trap *)] ^- (unit (unit path)) =/ res=toon (mock [trp %9 2 %0 1] mule-scry) =/ pax=(unit path) !< (unit path) :- -:!>(*(unit path)) ?:(?=(%0 -.res) p.res ~) ?: !?=(%0 -.res) =/ =tang :+ leaf+"failed kick handler, please report" leaf+"{} in {(trip dap.bowl)}" ?: ?=(%2 -.res) p.res ?> ?=(%1 -.res) =/ maybe-path=(unit path) ((soft path) p.res) ?~ maybe-path ~ [(smyt u.maybe-path) ~] ((slog tang) ~) `pax --