def answer

ezx@1.11.0.0 · src/doctor/run.bend:60

import ezx@1.11.0.0/src/doctor/run.bend as Run
import Base
import snap@1.4.0.0/main.bend as R
import ezx@1.11.0.0/src/io/file.bend as F
import ezx@1.11.0.0/src/lock/run.bend as Run
import ezx@1.11.0.0/src/lock/world.bend as W
import ezx@1.11.0.0/src/doctor/world.bend as DW

60# one question, answered. `lib` is the library directory the planner names.
61def answer(+lib: String, ask: DW.Ask) -> IO(DW.Answer):
62  match ask:
63    case DW.Probe{+name}:
64      do IO<DW.Answer>:
65        +out : String <- probe.ask(String.eq(name, "bend"), name)
66        return DW.Printed{R.ok(out), R.text(out)}
67    case DW.Lib{dir}:
68      do IO<DW.Answer>:
69        +out : String <- R.exec(["ls", dir])
70        return DW.Printed{R.ok(out), R.text(out)}
71    case DW.Sources{}:
72      do IO<DW.Answer>:
73        l : W.Listing <- Run.read.listing()
74        return DW.Listed{l}
75    case DW.Tree{a}:
76      tree(lib ++ "/" ++ W.ask.hash(a))
77    case DW.Name{nv}:
78      do IO<DW.Answer>:
79        m : Maybe<&2, String> <- F.read(lib ++ "/names/" ++ nv)
80        return DW.Held{m}

Uses (19)

Used by (1)