def answer

ezx@1.11.0.0 · src/pub/run.bend:38

import ezx@1.11.0.0/src/pub/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/tool/run.bend as ToolRun
import ezx@1.11.0.0/src/tool/world.bend as TW
import ezx@1.11.0.0/src/hub/get.bend as Net
import ezx@1.11.0.0/src/share/env.bend as Env
import ezx@1.11.0.0/src/pub/world.bend as PW
import ezx@1.11.0.0/src/pub/plan.bend as PP
import ezx@1.11.0.0/src/ws/run.bend as WsRun

38# one question, answered
39def answer(+lib: String, ask: PW.Ask) -> IO(PW.Answer):
40  match ask:
41    case PW.Tool{q}:
42      do IO<PW.Answer>:
43        a : TW.Answer <- ToolRun.answer(q)
44        return PW.Told{a}
45    case PW.Tracked{}:
46      do IO<PW.Answer>:
47        +out : String <- R.exec(["git", "-c", "core.quotePath=false", "ls-files", "-v"])
48        return ran(out)
49    case PW.Upload{+entry, +named, says}:
50      do IO<PW.Answer>:
51        IO.print_err(says)
52        +out : String <- R.exec(Env.line(lib, PP.upload.line(entry, named)))
53        return ran(out)
54    case PW.Lock{}:
55      do IO<PW.Answer>:
56        at : String <- WsRun.lock.path()
57        m : Maybe<&2, String> <- F.read(at)
58        return PW.Told{TW.Plain{m}}
59    case PW.Hub{+url}:
60      do IO<PW.Answer>:
61        +out : String <- Net.get(url)
62        return ran(out)

Uses (19)

Used by (1)